javascript - 简单的按键事件不能在 jquery 上正常工作

标签 javascript jquery string input keypress

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

例如:数据库:Flow123

按键时: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
       }
   })
});

我该如何解决这个问题?

最佳答案

如果您使用 keypress,您将在 input 的值中丢失最后按下的 key因为 按下键时触发事件,因此它不会在 input 值中考虑此键。

解决方案:

您将需要使用 keyup event ,所以当释放键时,最后按下的键可以被认为是 value

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

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

});

关于javascript - 简单的按键事件不能在 jquery 上正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48540040/

相关文章:

javascript - WordPress 插件开发 - 如何使用 JQuery/JavaScript?

javascript - 合并多个具有不同 ID 的对象数组

php - 在字符串末尾查找最长的字典单词

Python:在字符串中查找子字符串并返回子字符串的索引

javascript - 删除一定宽度的背景图片

javascript - 2sxc | 2sxc按实体下拉列表向模板应用程序添加第二个过滤器

javascript - asp.net 中撇号的编码字符串

javascript - 使用 Fancybox2 从多张预览图片开始一个画廊

c# - 如何按数字样式对字符串数组进行排序?

javascript - 以 Angular 制作可编辑网格的最佳实践