javascript - 在 maxlength 处于事件状态时输入时触发,即使达到 maxlength

标签 javascript jquery html

“On input while maxlength is active trigger even if maxlength is reached”,这是on input事件的经典用法。当达到 maxlength 时,我可以将事件设置为 false,但我觉得这不是很干净。

有没有其他方法可以在达到最大长度时不触发 onInput?也许另一个事件,onChange 显然不起作用,因为它需要失去输入焦点。

一个简单的 jsfiddle 来显示我的“问题”: fiddle http://jsfiddle.net/ysC7L/195/ 在第三个文本框上,我希望我的 onInput(或其他)不触发。

最佳答案

看起来您可能需要存储对输入的先前值的引用。如果您在较大函数范围内对输入设置事件处理程序,则可以将输入的先前值存储在变量中并将其与当前值进行比较。

如果您在全局上下文中设置这些事件处理程序,您可能希望避免将先前的值存储为全局变量。相反,您可以在 HTML 输入元素本身上设置一个属性来跟踪先前的值。这是一个例子:

$('#input-5').on('input', function() {
    var self = $(this),
        prevValue = self.attr('data-prev-value') || '',
        currentValue = self.val(),
        maxLength = self.attr('maxlength');

    if (prevValue.length !== currentValue.length || prevValue.length !== maxLength) {
        // do processing
    }
    self.attr('data-prev-value', currentValue);
});

请参阅此 jsfiddle:http://jsfiddle.net/ysC7L/203/ .

关于javascript - 在 maxlength 处于事件状态时输入时触发,即使达到 maxlength,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28295565/

相关文章:

javascript - html中如何获取session?

javascript - 在 Chrome 中检测设备模拟模式何时打开或关闭

javascript - 在 Angular JS 中选择 - 我需要元素和值属性相同

javascript - Javascript根据计算值取消隐藏div

javascript - 我可以将四个功能合二为一吗?

javascript - 从 json 键导出一些值作为新的 json 对象

html - 页脚重叠列 div

javascript - jquery 设置 'onmouseover' attr 似乎不起作用?

javascript - 垂直滚动时如何防止未定义的 scrollLeft?

html - CSS悬停更改另一个元素CSS