2012-12-05 176 views
3

我有一個相當簡單的登錄表單,提交了一個jQuery AJAX請求。目前,提交它的唯一方法是按「登錄」按鈕,但我希​​望能夠在用戶按下「Enter」時提交表單。jQuery/AJAX登錄表單提交輸入

我只使用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:

$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'; 
} 
+0

移動的按鈕元素到窗體中,並加入到它的類型屬性值爲「提交」 –

回答

8

添加ID到您的形式和改變你的登錄按鈕到:

$(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一個提交按鈕:

<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() { 
+0

謝謝,它工作。 :) – Jordan

+2

不要忘記在處理函數中返回false,因爲你不想真正提交表單。 – MatRt

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

此,除了給你的匿名點擊功能的名稱('$(「#登錄」) .click(doFormSubmit);')然後用'doFormSubmit();'替換alert('enter pressed');'' – joequincy

0

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> 

JavaScr IPT:

$(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; 
    }); 

});