Я не думаю, что ваша проблема связана с проверкой onblur
, но событие, которое вы вызываете при нажатии клавиши, звучит так (например, не позволяет пользователю вводить клавишу больше, когда они достигают предела), или я неправильно понял.
Если ваша проверка действительно onblur, вам не нужно беспокоиться о таких вещах, как включение / перезапись, вас интересует только значение элемента input
после завершения работы пользователя.их вклад.
Если вы пытаетесь остановить пользователя, если он достигнет этого предела при вводе текста, я напишу функцию для вычисления фактической длины, которую вы тестируете.Например,
function validateMyInput() {
var myInputField = document.getElementById('myInput');
var removeAllExcludedCharsResult = myInputField.value.replace('&','');//exclude &
var totalLength = removeAllExcludedCharsResult.length;
if(totalLength < 500) { //limit of this test is 500
return true;
}
else {
return false;
}
}
Очевидно, измените эту функцию на то, что вам нужно, и, возможно, сделайте ее более общей, передав элемент ввода, максимальную длину и массив исключенных символов, чтобы сделать ее многократно используемой.
ОБНОВЛЕНИЕ
Я проверил эту проблему Chrome, и ключ вставки, кажется, игнорируется.IE с другой стороны делает overkey.Тем не менее, это кажется специфичным для страницы, например, если я включил вставку на странице A, это, кажется, не влияет на страницу B. Я нашел эту страницу , которая, кажется, способна захватить событие кода ключа дажекогда вставка была нажата.Это может быть связано со следующим кодом?
if(window.event) {
event = window.event; //where event is the javascript key event.
}
В любом случае, приведенная выше ссылка, по-видимому, объясняет проблему, надеюсь, она получит ответ, если вышеприведенное неверно.
Надеюсь, я не понял, в чем проблема, и это помогло.