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