Когда один называется другим? Есть ли ситуация, по которой будет вызываться символ, но onBlur не будет называться?
В чем разница между атрибутом onBlur и onChange в HTML?
Ответ 1
Событие onBlur
запускается, когда вы отошли от объекта, не изменив его значение.
Событие onChange
вызывается только тогда, когда вы изменили значение поля и потеряли фокус.
Возможно, вы захотите взглянуть на ввод quirksmode для событий. Это отличное место для получения информации о том, что происходит в вашем браузере при взаимодействии с ним. Его книга тоже хороша.
Ответ 2
onblur срабатывает, когда поле теряет фокус, а onchange срабатывает при изменении значения поля. Однако эти события не всегда будут выполняться в том же порядке.
В Firefox вкладка из измененного поля будет запускать onchange, затем onblur, и в IE она будет делать то же самое. Однако, если вы нажмете клавишу ввода вместо вкладки, в Firefox он будет запускать onblur, а затем onchange, в то время как IE обычно запускается в исходном порядке. Тем не менее, я видел случаи, когда IE также срабатывает при размытии, поэтому будьте осторожны. Вы не можете предположить, что либо onblur, либо onchange произойдет до другого.
Ответ 3
Пример, чтобы сделать вещи конкретными. Если у вас есть выбор таким образом:
<select onchange="" onblur="">
<option>....
</select>
onblur()
вызывается, когда вы перемещаетесь. onchange()
вызывается, когда вы выбираете другую опцию из выделения - т.е. Вы изменяете то, что в данный момент выбрано.
Ответ 4
В Firefox onchange запускается только тогда, когда вы вставляете вкладку или выходите за пределы поля ввода. То же самое касается Onblur. Разница в том, что onblur будет срабатывать, если вы что-то изменили в поле или нет. Возможно, что ENTER будет запускать один или оба из них, но вы не знаете, что если вы отключите ENTER в своих формах, чтобы предотвратить непредвиденные отправки.
Ответ 5
onBlur - это когда ваш фокус больше не находится в поле, о котором идет речь.
Свойство onblur возвращает код обработчика события onBlur, если он существует, который существует в текущем элементе.
onChange - это когда изменяется значение поля.
Ответ 6
onChange - это когда что-то внутри поля изменяется, например, вы пишете что-то в текстовом вводе.
onBlur - это когда вы снимаете фокус с поля, например, вы писали в текстовом вводе, и вы его нажали.
Так что, действительно, это почти то же самое, но для onChange вести себя так, как onBlur делает что-то в этом входе, которое нужно изменить.
Ответ 7
Я думаю, что здесь важно отметить, что onBlur() срабатывает независимо.
Это полезная тема, но единственное, что она не выясняет, это то, что onBlur() будет срабатывать каждый раз.
onChange() будет срабатывать только при изменении значения.