В моей форме у меня есть поля, на которые я применил событие onblur
. Проблема в том, что если я нажимаю на сохранение непосредственно после ввода некоторого поля, сохранение не вызывается. Мне нужно щелкнуть дважды. Для получения дополнительных пояснений см. Шаги ниже, а также фрагмент кода.нужно нажать 2 раза, чтобы потерять фокус
1) Введите некоторое значение в поле ввода
2) Потерять фокус либо tabing вне или нажав где-нибудь еще на экране
3) он отлично работает и функция triggerOnBlur получает вызывается
4) Теперь введите некоторое значение ввода box снова
5) сразу нажмите на кнопку сохранения, не щелкая нигде
6) функция triggerOnBlur вызывается, но для того, чтобы нажать кнопку «Сохранить», мне нужно нажать «Сохранить».
Я хочу сделать это в один клик ..
<!DOCTYPE html>
<html>
<head>
<script>
function triggerOnBlur()
{
alert("onblur event triggered");
}
function triggerSaveButton()
{
alert("save button");
}
</script>
</head>
<body>
<form>
<input type = "text" onblur = "triggerOnBlur()" />
<input type = "submit" value = "Save" onclick = "triggerSaveButton()" />
</form>
</body>
</html>
Я предполагаю, что предупреждение в событии onBlur перемещает фокус от кнопки, поэтому событие onClick не запускается. Что произойдет, если ваш метод triggerOnBlur() сделает что-то, что не улавливает фокус? –
эй. thxx gareth для reply.yes u r right. на самом деле в моей реальной реализации, вместо окна предупреждения, мне нужно иметь ajax-вызов, но он делает то же самое, что и поле предупреждения, может быть потому, что вызов ajax также удаляет фокус. так что любые предложения, что можно было сделать ??? –