我正在尝试使用基于输入的邮政编码的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() { }); }); }) ;
感谢您的任何指示。
答案 0 :(得分: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密钥代码
答案 1 :(得分: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() {
});
});
}) ;
答案 2 :(得分: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; });
}) ;
答案 3 :(得分:0)
仅允许发生一个事件。您可以在事件name.replaceAll("[^\\s0A-Z]//", "")
和blur
中调用所需的功能。最后,必须在模糊事件中调用实际或所需的函数。例如
keypress
我们可以通过以下方式调用<input disabled="true" type="text" placeholder="Enter Start Location" id = "fromPlaceEntry" onkeypress="startHandlingFromSubmission(event)" onblur="startHandlingFromSubmission(event)">
函数。
startHandlingFromSubmission()