How to disable submit when selecting an address?

Support MB Geolocation How to disable submit when selecting an address?Resolved

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #16422
    brandonjpbrandonjp
    Participant

    Currently if a user selects an address using the keyboard (using arrow keys and then hitting the return/enter key on an address) it submits the entire form & causes the page to page to refresh (if Post) or adds the new term (if Taxonomy)

    Is there a Meta Box way of disabling form submission on return when selecting an address with the keyboard?

    #16429
    ComSiComSi
    Participant

    I'm basically having the same problem. When using the [enter] key I would expect to have the option selected but the complete page form is actually submitted.

    Tried setting a return false on the input field that is the parent of autocomplete pop-down, but apparently that is not the element where we can check on the keyup event for that pop-down.

    #16441
    brandonjpbrandonjp
    Participant

    On my sites, I'm currently using this ? chain which disables autocomplete on the address fields (in Chrome) and prevents the return key:

    jQuery('form#post input[id^=address][type=text]').attr('autocomplete', 'new-password').keypress(function(e) {
      if (e.which == 13) return false;
    });
    

    A few other options for this...

    1️⃣
    This ? disables submission anytime the Enter/Return key is pressed inside any form element (including Google Maps, but also on any other element):

    jQuery('.wp-admin.post-type-CUSTOMPOST form#post').keypress(function(e) {
      if (e.which == 13) return false;
    });
    

    Here ? I'm targeting only the pages for my custom post type called CUSTOMPOST (so change that to your post type) or else just use jQuery('form#post').... to attach this to all edit post screens.

    2️⃣
    And for completeness... there is also Google Maps' prescribed way of adding event listeners: https://developers.google.com/maps/documentation/javascript/events#DomEvents ?

    google.maps.event.addDomListener(jQuery('#idOfTextInput')[0], 'keydown', function(e) {
      if (e.keyCode === 13) return false;
    });
    

    Since we're in WordPress, I'm still using jQuery here ? you could easily write it with plain JS if needed. But since I'm still using jQuery here, I don't see the reason for using the Google Maps method.

    #16459
    Anh TranAnh Tran
    Keymaster

    Just fixed this issue in the latest version of MB Geolocation.

    #16463
    ComSiComSi
    Participant

    That's great ?

    Will this be available via the Composer repo soon? Tried updating but there were no available yet.

    #18054
    ComSiComSi
    Participant

    Did the fix actually made it to production @Anh Tran?

    When I press [enter] in this field, the full page will be submitted and reloads before the other (bind-)fields are populated.

    This should not submit the page

    I run Geolocation version 1.2.5, I believe that is the latest available, composer does not update it.

    #18073
    Anh TranAnh Tran
    Keymaster

    The latest version is 1.2.6. It's already available since October last year.

    If you use Composer to update, please delete the vendor folder, clear Composer cache and run composer install again. For details, please see this docs.

    #18077
    ComSiComSi
    Participant

    Thanks, the clear cache fixed it. We tried to update this but it stays on version 1.2.5.

    Now it's on 1.2.6 it works like a charm. Thanks!

Viewing 8 posts - 1 through 8 (of 8 total)
  • You must be logged in to reply to this topic.