2011-03-12 72 views
0

我在HTML中實現形式:Enter鍵鉤與HTML表單

<form id="loginForm" action="/?do=login" method="post" > 
    <table width="50%" border="0"> 
    <tr> 
     <td colspan="2"> 
     <span id="LoginErr"></span> 
     <div>Login:</div> 
     <input id="Login" type="text" maxlength="32" name="Login" value="{VAR %LOGIN}"/> 
     </td> 
    </tr> 
    <tr> 
     <td valign="bottom"> 
     <span id="PasswordErr"></span> 
     <div>Passoword:</small></div> 
     <input id="Password" type="password" maxlength="128" name="Password" value=""/> 
     </td> 
    </tr> 
    <tr> 
     <td> 
     <a href="javascript:checkLogin()">Enter</a> 
     </td> 
    </tr>  
    </table> 
</form> 

這是檢查和後期功能(使用jQuery):

function checkLogin() 
{ 
    var focused = false;  

    function report_error(field, err) 
    { 
    $('#' + field + 'Err').html(err); 
    if (!focused) 
    { 
     $('#' + field).focus(); 
     focused = true; 
    } 
    } 

    $('#LoginErr').html(''); 
    $('#PasswordErr').html(''); 

    $login = jQuery.trim($('#Login').val()); 
    $password = jQuery.trim($('#Password').val()); 

    if ($login.length == 0) 
    report_error('Login', 'The login field is empty!'); 

    if ($password.length == 0) 
    report_error('Password', 'The password field is empty!'); 

    if (!focused) 
    $('#loginForm').submit(); 

} 

但我有麻煩回車鍵。當我按下這個鍵的形式張貼沒有我的JavaScript檢查。 當輸入鍵被按下時,我需要調用我的功能,而不再需要其他操作。

Thanx!

更新: 正確的代碼是: 形式標記需要添加:onSubmit="return checkLogin() 在JavaScript if (!focused) $('#loginForm').submit();需要改變return !focused; 感謝rdamborsky。

+0

爲什麼不使用jQuery驗證? – 2011-03-12 17:18:09

回答

1

使用onSubmit形式事件:

$(function() { 
    $('#loginForm').onSubmit = checkLogin; 
}); 

它將被稱爲之前表單的數據實際發送任何觸發提交事件(點擊按鈕,按下其中一個字段中輸入...)

+0

我試過了。是的,當按Enter時調用checkLogin,但即使檢查爲false,也會調用post方法。 – 2011-03-12 17:32:57

+0

然後如果檢查是錯誤的,您需要'返回false;'由於'checkLogin()'方法 – rdamborsky 2011-03-12 17:35:15

+0

rdamborsky!非常感謝。 – 2011-03-12 17:54:23

相關問題