|
|
|
| Подскажите почему форма не отправляется по нажатию на enter http://osbygoogle.ru/login.php . Спасибо | |
|
|
|
|
|
|
|
для: daornet
(11.12.2010 в 01:11)
| | я точно не знаю, погляди там есть такая вещь как name=" "
оно должно быть в форме и в инпуте кнопки одинаковым
хз может я не прав, но пока ждешь ответа погляди | |
|
|
|
|
|
|
|
для: TavRoX
(11.12.2010 в 01:31)
| | нет, не помогло | |
|
|
|
|
|
|
|
для: daornet
(11.12.2010 в 01:11)
| | Форма отправляется по нажатию на ENTER автоматически только в одном единственном случае - если в форме имеется только ОДНО текстовое поле типа text. В документации об этом написано так: "If the form includes only one text box and the user presses ENTER, the onsubmit event fires."
У Вас же полей, во-первых, ДВА, а не одно. Этого, в принципе, уже достаточно, чтобы АВТОсабмит не происходил.
Ну и, во-вторых, второе поле не текстовое, а типа password.
-----
Поэтому Вам следует делать принудительную отправку - сиречь вешать на тег <FORM> обработчик на событие onkeypress, в котором проверять код нажатой клавиши и, если это код клавиши ENTER, то давать команду на сабмит формы. | |
|
|
|
|
|
|
|
для: АЯ
(11.12.2010 в 01:50)
| | А не могли бы вы подсказать эту команду? | |
|
|
|
|
|
|
|
для: daornet
(11.12.2010 в 02:20)
| |
<form onkeypress="if (event.keyCode == 13) this.submit ()">
|
И никаких return false НЕ НАДО. | |
|
|
|
|
|
|
|
для: АЯ
(11.12.2010 в 05:36)
| | Спасибо. | |
|
|
|
|
|
|
|
для: daornet
(11.12.2010 в 01:11)
| | Данная проблема встречается в некоторых браузерах некоторых версий, если в форме отсутствует кнопка отправки формы (пускай даже и скрытая):
<input type="submit" style="display: none;">
|
| |
|
|
|
|
|
|
|
для: mihdan
(13.12.2010 в 01:37)
| | >"Данная проблема встречается в некоторых браузерах некоторых версий..."
Нет, данная проблема связана только и исключительно с количеством полей в форме.
Если полей более одного, то форма по нажатию ENTER не сабмитится.
О чём я выше и написал.
И это - не проблема, так было задумано разработчиками.
Можете проверить в любой версии любого браузера:
<form action="http://google.com" style="background: lime; padding: 20px">
Жми ENTER - просабмитится!<br>
<input>
</form>
<p>
<form action="http://yandex.ru" style="background: aqua; padding: 20px">
ENTER можешь не нажимать - сабмита не будет!<br>
<input><br>
<input>
</form>
|
-----
Та проблема, о которой Вы написали, она - несколько другая.
Но Вы её немного неверно сформулировали.
Событие onsubmit в теге <FORM> - оно срабатывает только тогда, когда будет нажата кнопка <input type="submit"> (или реально юзером, или через скрипт, имитирующий клик).
Если же форму просабмитить через скрипт (методом form.submit ()), то событие onsubmit не срабатывает.
Отсюда, если Вам надо заставить работать событие onsubmit, то Вам просто необходимо иметь внутри формы кнопку <input type="submit"> (или <input type="image">), по которой надо кликнуть (или - юзер, или - программно. В последнем случае эту кнопку можно делать "скрытной" - но не посредством display: none, а через visibility: hidden).
И "проблема" эта - она во всех браузерах всех версий.
Вернее - это тоже никак не проблема, а просто так было задумано разработчиками.
В документации так и указано - "The submit method does not invoke the onsubmit event handler." | |
|
|
|
|
|
|
|
для: АЯ
(13.12.2010 в 14:01)
| | Благодарствую за развернутый ответ. | |
|
|
|
|
|
|
|
для: АЯ
(13.12.2010 в 14:01)
| | >>В последнем случае эту кнопку можно делать "скрытной" - но не посредством display: none, а через visibility: hidden
Возможно, стоит добавить, что это не сработает в IE (по крайней мере, в 7-м.) | |
|
|
|
|
|
|
|
для: yuk
(14.12.2010 в 23:49)
| | yuk, полагаю, не стоит этого добавлять, потому как срабатывает это и в 7-ой версии MSIE, и в более ранних, вплоть до 4-й:
<form id="frm" onsubmit="alert ('Hooray! It works!')">
<input name="field" size="100" value="Code for MSIE only">
<input type="submit" id="sbmt" style="visibility: hidden">
</form>
<hr>
<u onclick="document.all ('sbmt').click ()" style="cursor: hand">Имитируем клик по невидимой кнопке и видим алерт перед сабмитом - onsubmit сработал</u>
<p>
<u onclick="document.all ('frm').submit ()" style="cursor: hand">На всякий-який, убеждаемся, что "проблема" есть: сабмит будет, но
onsubmit не сработает - алерта без клика по кнопке не будет</u>
|
| |
|
|
|
|
|
|
|
для: АЯ
(15.12.2010 в 01:53)
| | Да, действительно, работает. Но если добавить еще одно текстовое поле - не работает (IE7)
<form id="frm" onsubmit="alert ('Hooray! It works!')">
<input name="field" size="100" value="Code for MSIE only">
<input name="field2" size="100" value="Code for MSIE only">
<input type="submit" id="sbmt" style="visibility: hidden">
</form>
|
| |
|
|
|
|
|
|
|
для: yuk
(15.12.2010 в 09:28)
| | Даже и не знаю... стоит ли спрашивать... а то вдруг обижу?
А что именно у Вас в этом случае (с двумя полями) не работает?
Неужели Вы проверяли сабмит по нажатию на ENTER? | |
|
|
|
|
|
|
|
для: АЯ
(15.12.2010 в 11:16)
| | Прошу прощения, был не достаточно внимателен при прочтении предыдущих постов.
Спасибо за уделенное внимание, потраченное время.
>>Неужели Вы проверяли сабмит по нажатию на ENTER?
Да, именно это я и проверял. | |
|
|
|