jQuery模糊和回车键

Jon*_*ris 20 jquery blur

我正在尝试使用基于输入的邮政编码的googlemap动态更新div.如果用户选择远离输入框(id ZipCode)但是如果他们按下输入它不会模糊字段,它的工作正常.我有一个与onkeyup一起使用的变体,但是一个事件调用另一个并且它一团糟.如果发生任何一个事件,是否可以关闭该功能.

$(document).ready(function() {
    $("#ZipCode").blur(function() {
        $("#dynamic").load('googlemap.php', {zipcode: $('#ZipCode').val(), maxdistance:  $("input[name='MaxDistance']:checked").val() }, 
            function() {
            });
        });
}) ;

谢谢你的任何指示.

Tow*_*own 26

你可以这样做:

 $(document).ready(function() {    
     $("#ZipCode").bind('blur keyup',function(e) {  
          if (e.type === 'blur' || e.keyCode === 13)  
          // do your stuff here  
     });  
  });
Run Code Online (Sandbox Code Playgroud)

语法:event.keyCode
返回值:一个数字,表示Unicode字符代码或Unicode密钥代码

  • 只是侧面注意,即我尝试模糊,但事件触发焦点输出 (2认同)
  • 我根据这个答案解决了我的问题,但我必须将“keyup”替换为“keydown”,否则我的表单会在我的内容执行之前提交。 (2认同)

And*_*ugh 12

你可以这样做:

$(document).ready(function() {
$("#ZipCode").bind('blur keyup', function(e) {
    if(e.type === 'keyup' && e.keyCode !== 10 && e.keyCode !== 13) return;
    $("#dynamic").load('googlemap.php', {zipcode: $('#ZipCode').val(), maxdistance:  $("input[name='MaxDistance']:checked").val() }, 
        function() {
        });
    });
}) ;
Run Code Online (Sandbox Code Playgroud)


Wil*_*Niu 11

重新阅读你的问题后,我想你想要做的是,当文本框(即#ZipCode)模糊时,更新googlemap元素; 当按下回车键时,模糊文本框,进而更新googlemap元素.

在您的评论中,您提到过,您不希望使用Enter键提交表单.您可能还需要处理该keypress事件.

$(document).ready(function() {
    $("#ZipCode").blur(function() {
        $("#dynamic").load('googlemap.php', {zipcode: $('#ZipCode').val(), maxdistance:  $("input[name='MaxDistance']:checked").val() }, 
            function() {
        });
    });

    $("#ZipCode").keyup(function(e) {
        if (e.which == 13) // Enter key
            $(this).blur();
    });

    // prevent the Enter key from submitting the form
    $('#ZipCode').keypress(function(e) { return e.which != 13; });
}) ;
Run Code Online (Sandbox Code Playgroud)