【问题标题】:Simple keypress event not working correctly on jquery简单的按键事件在 jquery 上无法正常工作
【发布时间】:2018-07-10 10:30:12
【问题描述】:

我的代码有效,但只有在我在存在的字符串之后再次写入时才返回 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
       }
   })
});

我该如何解决这个问题?

【问题讨论】:

  • 您可以使用keydown
  • @RayLloy change 是这里最没用的事件
  • 是的。我做了console.log(flowName);,每次我写它都缺少1个字符
  • 例如:当输入有 Flow 时,控制台日志显示 Flo
  • 当元素在其值被更改后失去焦点但未提交时(例如在编辑

标签: javascript jquery string input keypress


【解决方案1】:

如果您使用keypress,您将在input 的值中释放最后一次按下的key因为按下键时会触发event,所以它不会'在input 值中不考虑这个键。

解决方案:

您将需要使用keyup event,因此当释放该键时,可以将最后按下的键视为value

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

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

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多