【发布时间】:2015-04-03 09:38:39
【问题描述】:
我正在构建一系列输入字段,它们会在达到最大长度时自动制表。这通过检查ng-keyup 事件上的值的长度来工作,但这有一个小问题,可以通过使用oninput 事件来解决。但是,这似乎在 Angular 中不存在?
我要解决的问题:
当我快速输入最大数量的字符(在我的情况下是两个数字,可以非常快地输入)时,第一个 keyup 在输入两个字符并跳到下一个字段后触发。第二个keyup 仅在制表符后注册,因此它会在下一个字段上触发。这会导致不必要的行为。
要重现检查this fiddle(jQuery,因为它可以让我快速重现我正在寻找的问题和解决方案),填写“月”和“年”字段,然后在“天”字段。如果做得足够快,焦点会一直跳到“年”(因为第二个 keyup 在“月”处于焦点时被触发)。
当使用.on('input', ...) 时,这个问题就消失了。但是,我不想在 jQuery 中而是在 Angular 中将其用作属性,例如 ng-keyup。这可能吗?如果不能,我该如何以另一种方式解决这个问题?
【问题讨论】:
-
这是在指令中吗?你可以在指令中使用
.on("input", ...),不是吗? -
@RGraham 我的问题不完整,抱歉。我想在元素上使用类似
ng-input="myCallback()"的属性。
标签: javascript angularjs dom-events