|
|
|
|
|
для: АЯ
(15.12.2010 в 11:16)
| | Прошу прощения, был не достаточно внимателен при прочтении предыдущих постов.
Спасибо за уделенное внимание, потраченное время.
>>Неужели Вы проверяли сабмит по нажатию на ENTER?
Да, именно это я и проверял. | |
|
|
|
|
|
|
|
для: yuk
(15.12.2010 в 09:28)
| | Даже и не знаю... стоит ли спрашивать... а то вдруг обижу?
А что именно у Вас в этом случае (с двумя полями) не работает?
Неужели Вы проверяли сабмит по нажатию на ENTER? | |
|
|
|
|
|
|
|
для: АЯ
(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
(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>
|
| |
|
|
|
|
|
|
|
для: АЯ
(13.12.2010 в 14:01)
| | >>В последнем случае эту кнопку можно делать "скрытной" - но не посредством display: none, а через visibility: hidden
Возможно, стоит добавить, что это не сработает в IE (по крайней мере, в 7-м.) | |
|
|
|
|
|
|
|
для: АЯ
(13.12.2010 в 14:01)
| | Благодарствую за развернутый ответ. | |
|
|
|
|
|
|
|
для: 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." | |
|
|
|
|
|
|
|
для: daornet
(11.12.2010 в 01:11)
| | Данная проблема встречается в некоторых браузерах некоторых версий, если в форме отсутствует кнопка отправки формы (пускай даже и скрытая):
<input type="submit" style="display: none;">
|
| |
|
|
|
|
|
|
|
для: АЯ
(11.12.2010 в 05:36)
| | Спасибо. | |
|
|
|
|
|
|
|
для: daornet
(11.12.2010 в 02:20)
| |
<form onkeypress="if (event.keyCode == 13) this.submit ()">
|
И никаких return false НЕ НАДО. | |
|
|
|
|