为什么keyup事件没有正确触发?

时间:2014-11-12 14:16:43

标签: javascript jquery html twitter-bootstrap

我试图使用jquery keyup事件。但我无法正确触发它。它似乎只打了然后我用鼠标点击输入字段的一边。我无法找到它为什么不能正常工作。

HTML:

<input type="text" class="form-control requiredField validateField translateString " id="ReportInternalOrderTxt" data-isvalid="false">

使用Javascript:

$(document).off("keyup", "#ReportInternalOrderTxt").on("keyup", "#ReportInternalOrderTxt", function (e) {
     var result = parseInt($("#ReportInternalOrderTxt").val());
     $("#ReportInternalOrderTxt").attr("data-isvalid", (typeof result === "number" && (result % 1) === 0) && result > 0);
});

2 个答案:

答案 0 :(得分:1)

我认为你只是让每个人都认为键盘没有工作,实际上你在谈论验证不会触发,直到你模糊元素。这是因为当模糊发生时,验证正在等待onchange to fire。因此,您需要在设置数据属性后手动触发它。

$(document).off("keyup.numValidate").on("keyup.numValidate", "#ReportInternalOrderTxt", function (e)
    var textbox = $(this);
    var result = parseInt(textbox.val(), 10);
    textbox.attr("data-isvalid", (typeof result === "number" && (result % 1) === 0) && result > 0);
    textbox.change(); // or textbox.trigger("change");
});

答案 1 :(得分:0)

这就是你需要的:

 $('#ReportInternalOrderTxt').keyup(function(){
     //Your code
 });

http://api.jquery.com/keyup/