简单的按键事件在jquery

时间:2018-01-31 10:36:28

标签: javascript jquery string input keypress

我的代码有效但只有在我存在的字符串之后再次写入时才返回true。其中flowName是文字input

例如:数据库:Flow123

on keypress:Flow123返回false,但是当我点击另一个键时,它返回true。

这是我的代码:

//validate flow name
$('#flowName').keypress(function () {
   var flowName = $(this).val();
   $.ajax({
       url: '/check-flowName',
       type: 'post',
       data: {flowName: flowName},
       success: function (result) {
           console.log(result);
           //if exists
           if (result) {

           }
           //else do nothing
       }
   })
});

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果您使用keypress,则会因key的值而失去最后一次input,因为按下该键时会触发event ,因此它不会在input值中考虑此密钥。

<强>解决方案:

您需要使用 keyup event ,以便在释放密钥时可以将最后按下的密钥视为value

只需在代码中将keypress替换为keyup

$('#flowName').keyup(function () {
   var flowName = $(this).val();

});