簡體   English   中英

當輸入最大長度時,即使達到最大長度也會在輸入時觸發

[英]On input while maxlength is active trigger even if maxlength is reached

“即使達到最大長度,在激活最大長度時也會觸發輸入”,這是on輸入事件的經典用法。 當達到maxlength時,我可以將事件設置為false,但是我發現這不是很干凈。

還有其他方法可以在達到maxlength時不觸發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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM