jQuery模糊和回车键
我正在尝试使用基于输入的邮政编码的googlemap动态更新div。 如果用户选择远离输入框(id ZipCode)但是如果他们按下输入它不会模糊字段,它的工作正常。 我在onkeyup上有一个变种,但是一个事件调用另一个事件并且它一团糟。 如果发生任何一个事件,是否可以关闭该function。
$(document).ready(function(){ $(“#ZipCode”)。blur(function(){ $(“#dynamic”)。load('googlemap.php',{zipcode:$('#ZipCode')。val(),maxdistance:$(“input [name ='MaxDistance']:checked”)。val ()}, function(){ }); }); });
谢谢你的任何指示。
你可以这样做:
$(document).ready(function() { $("#ZipCode").bind('blur keyup',function(e) { if (e.type === 'blur' || e.keyCode === 13) // do your stuff here }); });
语法 :event.keyCode
返回值 :一个数字,表示Unicode字符代码或Unicode密钥代码
你可以这样做:
$(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() { }); }); }) ;
重新阅读你的问题后,我想你想要做的是,当文本框(即#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; }); }) ;
仅允许发生一个事件。 您可以在事件blur
和keypress
调用所需的function。 最后,必须在模糊事件中调用实际或所需的函数。 例
我们可以通过以下方式调用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 } }