Chrome требует дважды нажать «Enter», чтобы отправить мою форму - PullRequest
1 голос
/ 30 марта 2011

Краткое описание проблемы: Chrome требует дважды нажать «Ввод», прежде чем отправлять мою форму.

Подробная информация: у меня есть форма.Его действие:

action="javascript: Search();"

У меня есть текстовый ввод в моей форме.Я набираю что-то в этом текстовом поле.Я нажимаю ввод.Вызов Search ().

Вызов Search ():

alert('A')
doPost(document.formName,'Search.php')
alert('B')

Вызов doPost (form, url):

form.action=url
alert('C')
form.submit()
alert('D')

Теперь проблема.FF выскакивает «A», затем «C», затем отправляет форму (ууу!).Chrome, с другой стороны, выскакивает «A», затем «C», затем «D», затем «B», но без отправки формы (Boo!).Затем в отчаянии я снова нажал «Enter» в Chrome.form.submit () вызывается успешно (без всплывающих окон).

Почему Chrome не отправляет мою форму с первой попытки?

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

Я не точно уверен в вашей проблеме, но я подозреваю, что ваш код должен быть преобразован в более стандартную настройку.

Ваша форма должна быть просто ...

<form action="Search.php" method="POST">
     <input type="text" /> 
     <!-- Blah blah whatever else is in here -->
     <input type="submit" />
</form>

Почему JavaScript вообще участвует?


К вашему сведению: Возможно, это как-то связано с вашей проблемой. От JQuery Отправить документ

В зависимости от браузера клавиша Enter может вызвать отправку формы только в том случае, если форма содержит ровно одно текстовое поле или только при наличии кнопки отправки. Интерфейс не должен полагаться на определенное поведение для этой клавиши, если проблема не вызвана, наблюдая событие нажатия клавиши для нажатий клавиши Enter.

1 голос
/ 30 марта 2011

вы должны заканчивать каждое утверждение javascript точкой с запятой;

вы не использовали точку с запятой для завершения ваших утверждений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...