У меня что-то вроде:
<input type="textbox" id="partNumber" onChange="validatePart(this);">
<input type="textbox" id="quantity" onfocus="saveOldQuantity(this);">
Событие onChange
- это правильное срабатывание после внесения изменений и текстовое поле теряет фокус. Когда величина
получает фокус, событие onfocus
запускается правильно, чтобы сохранить старое значение amount
до внесения изменений.
Если validatePart ( )
обнаруживает недопустимое значение partNumber
, предупреждает
пользователя об этом факте. После сброса alert ()
я хотел бы вернуть фокус на вход partNumber
. Но выполнение focus ()
на входном узле не дает ему фокус. Отладка здесь сложна, потому что взаимодействие с окном отладки IE, конечно же, меняет фокус.
Как я могу обеспечить возврат фокуса на partNumber
, если ошибка обнаружена в validatePart ()
?
РЕДАКТИРОВАТЬ:
Простая версия validatePart ()
:
function validatePart(node) {
if (!node.value) {
alert('Please enter a part number.');
node.focus(); // <======= why isn't this having any effect??
}
}