jQuery模糊替代品

时间:2011-12-02 11:30:22

标签: javascript jquery javascript-events

  

可能重复:
  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", "");

});

4 个答案:

答案 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();

    });

});