質問する
3226 次
1 に答える
3
値を切り捨てるか、条件の下でイベントを防止する関数を生成し、関心のあるすべてのイベントの複数の異なるリスナーとしてそれらを追加します。
function snip(len) {
return function (e) {e.target.value = e.target.value.slice(0, len);};
}
function prevent(len) {
return function () {
if (e.target.value.length >= len) {
e.preventDefault();
return false;
}
};
}
var len = 5; // choose your length however you want
var textarea = document.getElementById('texta'), // get the node
trunc = snip(len),
prev1 = prevent(len),
prev2 = prevent(len - 1);
textarea.addEventListener('change' , trunc, true);
textarea.addEventListener('input' , trunc, true);
textarea.addEventListener('keydown' , prev2, true);
textarea.addEventListener('keypress', prev2, true);
textarea.addEventListener('keyup' , prev1, true);
textarea.addEventListener('paste' , trunc, true);
IE では、イベントを別の方法で添付する必要がある場合があります。
于 2013-08-24T18:15:36.043 に答える