我有一个结帐表单,其中需要一个邮政编码。我需要这个zipcode来获取LocationID。邮政编码为0000XX格式,但我只需要前4位数字。现在我已经制作了一个(全局)javascript来通过ajax获取locationID。
唯一的问题是现在我正在使用当有人输入邮政编码时激活的键盘功能。但是我希望在用户输入内容并点击其他字段时激活它。我怎么能这样做?
$('#deliveryzip').bind('keyup change', function(){
//Get zip
var zip = $('#deliveryzip').val();
//Strip first 4 chars from input
//check if 4 chars are integer
//if all ok do ajax...
//Get locationID from zipcode
$.post(jssitebaseUrl+'/ajaxFile.php',{"zip":zip,"action":"getLocInfo"},function(response){
if(response == "ok"){
alert(response);
//If return is ok..
var show = true;
}
});
if(show){
$('#locInfo').show();
} else {
$('#locInfo').hide();
}
return false;
});
答案 0 :(得分:2)
为什么不直接听取更改事件,而不是听取keyup事件?
$('#deliveryzip').on('change', function(){....});
当输入字段改变并且一旦失去焦点(例如,通过用户点击另一个元素),就会触发更改事件。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ie/ms536912(v=vs.85).aspx(来自Microsof),此处有来自Mozilla的文档https://developer.mozilla.org/en-US/docs/Web/Reference/Events/change
答案 1 :(得分:0)
您可以使用onBlur函数:http://www.w3schools.com/jsref/event_onblur.asp
当对象失去焦点时会发生onblur事件。
Onblur最常用于表单验证代码(例如,当用户离开表单字段时)。
提示:onblur事件与onfocus事件相反。
使用jQuery:on(“blur”,handler)
答案 2 :(得分:0)