Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отправка формы по ENTER (ajax) (https://javascript.ru/forum/jquery/33016-otpravka-formy-po-enter-ajax.html)

byzyk 07.11.2012 17:10

Отправка формы по ENTER (ajax)
 
<form id="login-form" action="<?php echo CHtml::normalizeUrl(array('site/login')); ?>" method="post">
						<input name="LoginForm[username]" id="LoginForm_username" type="text" placeholder="Email">
						<input name="LoginForm[password]" id="LoginForm_password" type="password" placeholder="Password">
					</form>


$("#login-form").submit(function() {
			$.ajax({
				url: $(this).prop('action'),
				data: $(this).serialize(),
				type: 'POST',
				success: function(data) {
					window.location.reload();
				},
				error: function (jqXHR, textStatus, errorThrown) {
					notifycation('error', jqXHR.responseText);
				}
			});

			return false;
		});


Форма работает только при клике по кнопке ($('.кнопка').submit())
Как сделать так чтобы аякс срабатывал по ENTER'у?
Заранее большое спасибо.

walik 07.11.2012 17:20

Сабмит срабатывает и по enter'y, главное что бы кнопка submit была.
Можете спрятать ее если она не нужна.
<!DOCTYPE HTML>
<html>
  <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  </head>
  <body>
    <form id="login-form" action="site/action" method="post">
		<input name="LoginForm[username]" id="LoginForm_username" type="text" placeholder="Email">
		<input name="LoginForm[password]" id="LoginForm_password" type="password" placeholder="Password">
      
		<input type="submit" style="position: absolute;;left: -99999px;" />
	</form>

    <script>
      $('#login-form').submit(function() {
        alert('a');
      	return false;
      });
    </script>
  </body>
</html>

byzyk 07.11.2012 18:03

walik,
Спасибо) теперь все работает отлично, но мне еще пришлось добавить value=" "


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