Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отправка формы по нажатию на ENTER (https://javascript.ru/forum/misc/18824-otpravka-formy-po-nazhatiyu-na-enter.html)

Vuzy 17.07.2011 03:25

Отправка формы по нажатию на ENTER
 
Сабж:
Делаю отправку некой формы через аякс. и у меня стоит кнопка которая запускает скрипт... но хотелось бы для упрощения седлать еще и отправку формы с помощью нажатия на ентер как это реализировать

скрипт.
<FORM onSubmit=searchtov()>
<INPUT TYPE="text" NAME="search" id="search" size="50">
<INPUT TYPE="button" name="search_now" id="search_now" value="Искать" onClick=searchtov()>
</FORM>

через кнопку работает а вот субмит не хочет выдавать инфу... =(
может как то перехватить нажатие на ентер?

FINoM 17.07.2011 03:52

function searchtov(){
...
return false;
}

kobezzza 17.07.2011 04:08

Можно перехватить событие нажатия энтера, для этого вешайте событие нажатие клавиши и через объект event смотрите какая клавиша нажата.

Примерчик:
document.onkeyup = function (e) {
	e = e || window.event;
	if (e.keyCode === 13) {
		alert("Вы нажали Enter!");
	}
	// Отменяем действие браузера
	return false;
}

Vuzy 17.07.2011 04:14

Цитата:

Сообщение от FINoM (Сообщение 113723)
function searchtov(){
...
return false;
}

Эта функция написана и работает как часы.. вопрос в нажатии ентера через ентер страница не работает форма просто обновляется и вся робота юзера коту под хвост.

Цитата:

Сообщение от kobezzza (Сообщение 113724)
Можно перехватить событие нажатия энтера, для этого вешайте событие нажатие клавиши и через объект event смотрите какая клавиша нажата.

как я узнаю что это ентер?

Vuzy 17.07.2011 04:24

Кул спасибо... получается я так понял можно подставить так и поидее скрипт будет реагировать и выполнять функцию?
document.onkeyup = function (e) {
	    e = e || window.event;
	    if (e.keyCode === 13) {
	        searchtov();
	    }
	    // Отменяем действие браузера
	    return false;
	}


да попробовал работает... ОГРОМНОЕ СПАСИБО

Kolyaj 17.07.2011 09:39

Обработчик надо вешать на событие submit формы, а не click у кнопки, тогда и enter сам заработает.

trikadin 17.07.2011 13:21

<script>
function submit_handler(form) {
 alert(form.anything.value);
 return false;
}
</script>
<form method="POST" action="" onsubmit="return submit_handler(this)">
<input name="anything" value="text">
<input type="submit">
</form>


По нажатию энтера отлично отрабатывает. Если не работает - у вас в ф-ции ошибка. И на кнопке ничего не висит, кстати.

monolithed 17.07.2011 15:48

trikadin, не нужно учить новичков гадить в html-код, иначе они никогда не перестанут быть новичками.

trikadin 17.07.2011 15:58

monolithed, вы правы)

Vuzy, лучше так:
<form method="POST" action="" id="form_who_should_be_checked">
<input name="anything" value="text">
<input type="submit">
</form>
<script>
document.getElementById("form_who_should_be_checked").onsubmit= 
 function() {
  alert(this.anything.value);
  return false;
 }
</script>

dragontema 24.01.2013 23:36

Имеется вот такой код

<?

    {
      echo "<div class='mess'>Соощение для ";
      echo "<b> $ank[nick] </b></div></br>";

      echo "<form method='post' name='message' action='/mail.php?id=$ank[id]&amp;$passgen'>\n";

      echo "<table width='100%'>\n";
      echo "<tr>\n";
      echo "</tr>\n";

      echo "<tr>\n";
      echo "<td width='100%'>\n";
      if (!isset($msg2))$msg2=NULL;
      echo '<textarea name="msg" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">'.$msg2.'</textarea><br />';
      echo "</td>\n";
      echo "</tr>\n";
      echo "</table>\n";

      if ($user['level']==0 && mysql_result(mysql_query("SELECT COUNT(*) FROM `users_konts` WHERE `id_kont` = '$user[id]' AND `id_user` = '$ank[id]'"), 0)==0)

      echo "<img src='/captcha.php?SESS=$sess' width='100' height='30' alt='Проверочное число' /><br />\n<input name='chislo' size='5' maxlength='5' value='' type='text' /><br/>\n";
      echo "<input type='submit' name='send' value='Отправить' />\n";
      echo "</form>";

       }

?>



как сделать, чтоб отправлялось по нажатию на Enter ???


Часовой пояс GMT +3, время: 04:48.