JQuery изменить / фокус / размытие переопределить отправить в Firefox - PullRequest
0 голосов
/ 26 октября 2010

Дана форма с одним текстовым полем. Обработчик отправки привязывается к форме, а обработчик изменения / фокусировки / размытия - к текстовому полю.

Когда что-то вводится в текстовое поле и затем нажимается кнопка отправки, в Firefox регистрируется только событие изменения / фокусировки / размытия, а в Safari - оба.

Форма:

<form id="form1" action="" method="get">
<input id="text1" name="text1" type="text" />
<input id="submit1" name="submit1" type="submit" />
</form>

Код Jquery:

$(document).ready(function(){
 $('#text1').change(function(){ alert("1"); });
 $('#form1').submit(function(){ alert("2"); });
});

В Firefox: «1» предупрежден. В Safari оповещается «1», а затем «2».

Как заставить поведение в Safari работать в Firefox?

1 Ответ

0 голосов
/ 08 марта 2011

Проблема здесь выглядит так, как будто она вызвана alert.

Если вы запускаете код без alert или изменяете его на console.log, код ведет себя так, как вы ожидаете, при этом запускаются события изменения и отправки.

$(function() {

  $('#text1').change(function() {
    console.log("change");
  });

  $('#form1').submit(function() {
    console.log("submit");
    return false;
  });
});

Поскольку вы никогда не хотите использовать alert в рабочем коде, вы сможете получить желаемый результат без каких-либо изменений.

...