У меня есть форма, которая использует onblur
для большинства полей ввода, например, следующим образом:Исключить кнопки формы из «ONBLUR» событие, JavaScript
<form>
<input name="..." id="..." onblur="myFunction(name)" />
<button id="..." onclick="submit()">Submit</button>
</form>
Форма проверяет определенные поля (т.е. имя пользователя, адрес электронной почты) в режиме реального времени через события onblur
, но такая же проверка происходит, когда пользователь нажимает кнопку отправки.
В настоящее время, когда пользователь нажимает кнопку отправки, сначала запускается событие onblur
, а затем запускается событие onclick
от кнопки - таким образом, выполняется проверка дважды и теряется пара дополнительных секунд.
Есть ли способ переопределить метод onblur
, чтобы исключить размытие, которое происходит, когда пользователь нажимает кнопку отправки?
Я думал простой if(/*button is clicked*/){}
в пределах myFunction()
, но я не знал бы, как проверить на кнопку нажмите. И, похоже, исходя из текущей производительности, кнопка щелчка даже не регистрируется до тех пор, пока не размывается.
Заранее спасибо.
* "тратить пару лишних секунд" * - Что вы делаете в 'MYFUNCTION()', который измеряется в * секундах *? – nnnnnn
Ajax call do database для проверки доступности имени пользователя. Может быть, не совсем пара секунд, но достаточно времени, чтобы это меня беспокоило. По мере того, как происходит проверка, появляется пин-колесо. При нажатии кнопки отправки появляется тот же самый штифт. Таким образом, пользователь видит: pinwheel -> подтверждение ввода (очень кратко) -> pinwheel -> повторное подтверждение ввода. Это просто выглядит уродливо и глючно. – Birrel