可能重复:
Detect all changes to a <input type=“text”> (immediately) using JQuery
我有一个用户输入数据的文本框,在onBlur事件中,它执行AJAX请求以验证他们输入的数据。如果验证,则启用按钮。然而,用户感到困惑的是,他们必须跳出标签或点击页面上的某个位置才能启用该按钮。
我正在使用的代码有替代事件或方法吗?
$('.serial').live('blur', function () {
//Do AJAX to validate
//If ok enable button
$('#button').attr("disabled", "");
});
答案 0 :(得分:4)
答案 1 :(得分:1)
尝试keyup
- 在按下每个键后触发它。
$('.serial').live('keyup', function () {
//Do AJAX to validate
//If ok enable button
$('#button').attr("disabled", "");
});
答案 2 :(得分:1)
在每次击键时发送AJAX请求将产生巨大的请求队列。你可以限制这个如果Serial有固定数量的字符,或者它有一个固定的模式,那么
var validate = function(value){
//Check for number of characters or do regex validate the value
//If Validated send ajax request otherwise not
}
$('.serial').live('keyup', function(){
validate(value);
});
$('.serial').live('blur', function () {
validate(value);
});
//tracking the mouseover on the submit button may also help
//as its common psychology of the users to play with the submit button
//after the entered the data and nothing is happening
在验证时也禁用文本框也可能有所帮助。使得用户可以理解正在进行一些处理(这里是验证)。现在需要等待。
答案 3 :(得分:0)
我决定使用T.J Crowder发布的链接中的this回答。
$(document).ready(function () {
MonitorSerialTextBoxes();
$('#newSerial').click(function () {
$.tmpl("productTemplate", mymodel).insertAfter($(".entry").last());
MonitorSerialTextBoxes();
});
});