【发布时间】:2015-04-02 10:49:49
【问题描述】:
“On input while maxlength is active trigger 即使达到 maxlength”,这是 on input 事件的经典用法。当达到 maxlength 时,我可以将事件设置为 false,但我觉得这不是很干净。
有没有其他方法可以在达到 maxlength 时不触发 onInput ?也许另一个事件,onChange 显然不起作用,因为它需要失去输入焦点。
一个简单的 jsfiddle 来显示我的“问题”:
fiddlehttp://jsfiddle.net/ysC7L/195/
在第三个文本框中,我希望我的 onInput(或其他)不触发。
【问题讨论】:
-
无论内容长度如何,
input事件都会触发,因此您有两个选择: 删除您的事件处理程序(您不想要,这可能很糟糕,因为您需要听另一个事件以知道何时再次添加它),或者在达到最大长度时在您自己的处理程序函数中选择不处理。 -
您无法阻止事件触发,但您可以控制事件传播。按特定顺序将两个处理程序绑定到
input事件。第一个处理程序控制是否传播事件(基于最大长度),第二个处理程序可以在事件不是最大长度时处理。 -
我想我明白你们俩所说的。事情是我需要在刚刚达到 maxlength 时触发事件(maxlength = 3 上的“ab”到“abc”,它需要触发,但“abc”=>“abc”不应该)。所以我不能检查事件本身的输入长度,因为它可能需要被触发。如果我必须根据先例值触发第二个,则如果我首先签入,则双重事件可能会起作用。已经谢谢了,我很快就会回来。
标签: javascript jquery html