【问题标题】:Enter needs to be pressed twice to trigger, KnockoutJS with knockout.validation.jsEnter需要按两次才能触发,KnockoutJS和knockout.validation.js
【发布时间】:2016-02-12 08:50:15
【问题描述】:

我正在构建一个表单页面,但当我想实现一个“输入键”功能来同时触发验证和方法时,我遇到了困难。

Here's a JS-Fiddle of the example

如您所知,您需要按两次 Enter 才能触发该方法。我相信 knockout.validation 有它自己的事件绑定,也许这就是为什么

<input type="text" data-bind="event: {'keypress': enterKey}, value: customer.telephone">
<input type="button" data-bind="click: sendCustomer" value="send">

enterKey = function (d, e) {
        if (e.keyCode == 13) {
            alert("enter has been pressed..");
            sendCustomer();
        }
        return true;
    }

【问题讨论】:

  • 请在问题本身中包含完整但最少的repro。这样,如果链接失效或 jsfiddle 失效,您的问题仍然对未来遇到同样问题的访问者有用。

标签: javascript knockout.js knockout-validation


【解决方案1】:

keypress 和 keyup 是有区别的。这个link 很有用。

所以我用 keyup 替换了按键

<input type="text" data-bind="event: {'keyup': enterKey}, value: customer.telephone">

它似乎正在工作。希望这对你有帮助。

JSFIDDLE

【讨论】:

  • 谢谢!出于某种原因,我在您的链接上获得了旧的解决方案(使用按键)。也许它已经缓存在我的手机上。我试着改变它,它起作用了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 2011-07-29
  • 2015-12-24
  • 1970-01-01
相关资源
最近更新 更多