Использование document.activeElement с событием onChange для проверки текстового поля только после завершения изменения текстового поля - PullRequest
0 голосов
/ 29 апреля 2011

Я уже внедрил версию кода ниже в моей системе разработки.

функция validateTextBox (textBoxId) {
var textBox = document.getElementById (textBoxId);
if (document.activeElement.id! = TextBox.id) {
сделать проверку
}
}

HTML похож на:
<input type="text" id="ValidateMe" onChange="validateTextBox('ValidateMe');"/>

Идея заключается вэта проверка выполняется только после того, как пользователь завершил редактирование текстового поля, и что, в отличие от события onBlur, проверка запускается только тогда, когда значение текстового поля действительно изменилось.

Кажется, это работает, я просто боюсь использовать его без некоторого обзора и обратной связи. Я не видел подобных примеров кода. Поэтому, пожалуйста, дайте мне ваши мысли о реализации и любые альтернативные идеи, которые вы можете иметь.

Спасибо

1 Ответ

0 голосов
/ 29 апреля 2011

Это прекрасное решение. Помните, что событие onchange обычно срабатывает только при изменении фокуса (например, onblur)

Если вы хотите выполнить проверку, когда пользователь печатает, вы можете использовать onkeydown / onkeyup / onkeypress, но это намного сложнее.

Кроме того, вы можете использовать this, поэтому вам не нужно присваивать идентификатор каждому полю и не забудьте передать его в функцию проверки:

function validate(input_element) {
    alert(input_element.value)
}
<input type="text" name="name" onchange="validate(this);"/>
...