Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Форма не отправляется по нажатию на Enter

Сообщения:  [1-10]   [11-15] 

 
 автор: yuk   (15.12.2010 в 17:33)   письмо автору
 
   для: АЯ   (15.12.2010 в 11:16)
 

Прошу прощения, был не достаточно внимателен при прочтении предыдущих постов.
Спасибо за уделенное внимание, потраченное время.

>>Неужели Вы проверяли сабмит по нажатию на ENTER?
Да, именно это я и проверял.

  Ответить  
 
 автор: АЯ   (15.12.2010 в 11:16)   письмо автору
 
   для: yuk   (15.12.2010 в 09:28)
 

Даже и не знаю... стоит ли спрашивать... а то вдруг обижу?

А что именно у Вас в этом случае (с двумя полями) не работает?
Неужели Вы проверяли сабмит по нажатию на ENTER?

  Ответить  
 
 автор: yuk   (15.12.2010 в 09:28)   письмо автору
 
   для: АЯ   (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>

  Ответить  
 
 автор: АЯ   (15.12.2010 в 01:53)   письмо автору
 
   для: 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>

  Ответить  
 
 автор: yuk   (14.12.2010 в 23:49)   письмо автору
 
   для: АЯ   (13.12.2010 в 14:01)
 

>>В последнем случае эту кнопку можно делать "скрытной" - но не посредством display: none, а через visibility: hidden

Возможно, стоит добавить, что это не сработает в IE (по крайней мере, в 7-м.)

  Ответить  
 
 автор: mihdan   (14.12.2010 в 00:24)   письмо автору
 
   для: АЯ   (13.12.2010 в 14:01)
 

Благодарствую за развернутый ответ.

  Ответить  
 
 автор: АЯ   (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."

  Ответить  
 
 автор: mihdan   (13.12.2010 в 01:37)   письмо автору
 
   для: daornet   (11.12.2010 в 01:11)
 

Данная проблема встречается в некоторых браузерах некоторых версий, если в форме отсутствует кнопка отправки формы (пускай даже и скрытая):

<input type="submit" style="display: none;">

  Ответить  
 
 автор: daornet   (11.12.2010 в 12:20)   письмо автору
 
   для: АЯ   (11.12.2010 в 05:36)
 

Спасибо.

  Ответить  
 
 автор: АЯ   (11.12.2010 в 05:36)   письмо автору
 
   для: daornet   (11.12.2010 в 02:20)
 

<form onkeypress="if (event.keyCode == 13) this.submit ()">

И никаких return false НЕ НАДО.

  Ответить  

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования