我正在尝试使用基于输入的邮政编码的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() { }); }); }) ;
谢谢你的任何指示。
你可以这样做:
$(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
中调用所需的函数。最后,必须在模糊事件中调用实际或所需的函数。例
<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
}
}