jQuery模糊和回车键

问题描述 投票:19回答:4

我正在尝试使用基于输入的邮政编码的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() {
            });
        });
}) ;

谢谢你的任何指示。

jquery blur
4个回答
25
投票

你可以这样做:

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

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


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() {
        });
    });
}) ;

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; });
}) ;

0
投票

仅允许发生一个事件。您可以在事件blurkeypress中调用所需的函数。最后,必须在模糊事件中调用实际或所需的函数。例 <input disabled="true" type="text" placeholder="Enter Start Location" id = "fromPlaceEntry" onkeypress="startHandlingFromSubmission(event)" onblur="startHandlingFromSubmission(event)"> 我们可以通过以下方式调用startHandlingFromSubmission()函数。

function startHandlingFromSubmission(e){
if(e.keyCode===13){ //To check enter event  
    $(e.target).blur();
}
if(e.keyCode===0){ //To check span event
    setTimeout(function() {
        handleFromPlaceSubmission(e);
    }, 200);
}
}

function handleFromPlaceSubmission(e){

        //This is the actual function which we desire to call
       if(e.keyCode === 0){ //executing only in case of blur event
       // your code goes here
       }
}
© www.soinside.com 2019 - 2024. All rights reserved.