jquery 上的简单按键事件无法正常工作

Simple keypress event not working correctly on jquery

我的代码有效,但只有 returns 如果我在存在的字符串之后再次写入,则为真。其中 flowName 是文本 input.

例如:数据库:Flow123

按键时:Flow123 returns false 但是当我点击另一个键时 returns 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
       }
   })
});

我该如何解决这个问题?

如果您使用 keypress,您将在 input 的值中丢失最后按下的 key 因为 event 在键被按下,所以在input值中不考虑这个键。

解法:

你需要用到keyup event,所以松开时最后按下的键可以算作value[=21] =]

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

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

});