用html表单输入密钥钩子

时间:2011-03-12 17:15:02

标签: javascript jquery html forms submit

我在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检查。 我需要在按下回车键时调用我的功能而不再采取行动。

感谢名单!

更新: 正确的代码是: 在表单标记中需要添加:onSubmit="return checkLogin() 在javascript if (!focused) $('#loginForm').submit();中需要更改return !focused; 感谢rdamborsky。

1 个答案:

答案 0 :(得分:1)

使用onSubmit表单事件:

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

在您的表单数据实际发送之前,只要触发提交事件,就会调用它(单击按钮,在其中一个字段中按Enter键)