Входная форма jQuery / AJAX submit

У меня довольно простая форма входа, которая отправляется с помощью запроса jQuery AJAX. В настоящее время единственный способ отправить его – нажать кнопку «Войти», но я хотел бы иметь возможность отправить форму, когда пользователь нажимает «Enter».

Я только когда-либо делал формы с использованием запросов jQuery AJAX, но я не уверен, какие изменения мне нужно будет сделать, чтобы форма была также отправлена, когда пользователь нажимает «Enter».

HTML:

<form> <label for="username">Username</label> <input type="text" id="username" placeholder="Username" /> <label for="password">Password</label> <input type="text" id="password" placeholder="Password" /> </form> <button id="login">Login</button> 

JavaScript:

 $(document).ready(function() { $('#login').click(function() { $.ajax({ type: "POST", url: 'admin/login.php', data: { username: $("#username").val(), password: $("#password").val() }, success: function(data) { if (data === 'Correct') { window.location.replace('admin/admin.php'); } else { alert(data); } } }); }); }); 

Выдержка из login.php:

 $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password"); $stmt->execute(array( ':username' => $user, ':password' => $pass )); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); $affected_rows = $stmt->rowCount(); if ($affected_rows == 1) { //add the user to our session variables $_SESSION['username'] = $username; echo ('Correct'); } else { echo 'Incorrect username/password'; } 

Solutions Collecting From Web of "Входная форма jQuery / AJAX submit"

Добавьте идентификатор в форму и преобразуйте кнопку входа в кнопку отправки:

 <form id="myform"> <label for="username">Username</label> <input type="text" id="username" placeholder="Username" /> <label for="password">Password</label> <input type="text" id="password" placeholder="Password" /> <input type="submit" id="login" value="Login"/> </form> 

Затем вместо использования события click:

 $('#login').click(function() { 

используйте событие отправки:

 $('#myform').submit(function() { 
 ​$('form').on('keyup', function(e){ if(e.which == 13 || e.keyCode == 13){ alert('enter pressed'); } });​​ 

HTML

 <form id='myfrm'> <label for="username">Username</label> <input type="text" id="username" placeholder="Username" /> <label for="password">Password</label> <input type="text" id="password" placeholder="Password" /> <button id="login">Login</button> </form> 

JavaScript:

 $(document).ready(function() { $('#myform').submit(function() { $.ajax({ type: "POST", url: 'admin/login.php', data: { username: $("#username").val(), password: $("#password").val() }, success: function(data) { if (data === 'Correct') { window.location.replace('admin/admin.php'); } else { alert(data); } } }); //this is mandatory other wise your from will be submitted. return false; }); });