简体   繁体   English

用html形式输入键钩

[英]Enter key hook with html form

I implemented form in HTML: 我用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>

This is the check and post function (using jQuery): 这是检查和发布功能(使用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();

} 

But I have trouble with enter key. 但是我在输入密钥时遇到麻烦。 When i press this key form is posted without my javascript check. 当我按此键表单时,我没有进行JavaScript检查。 I need call my function when enter key is pressed and no more action. 我需要在按下Enter键且没有更多操作时调用我的函数。

Thanx! 谢谢!

Update: Correct code is: in form tag need add: onSubmit="return checkLogin() in javascript if (!focused) $('#loginForm').submit(); need change on return !focused; Thanks to rdamborsky. 更新:正确的代码是:在表单标签中需要添加: onSubmit="return checkLogin() in javascript if (!focused) $('#loginForm').submit(); return !focused;需要更改return !focused;感谢rdamborsky。

use onSubmit form event: 使用onSubmit表单事件:

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

It will be called just before your form's data are actually sent whatever triggers the submit event (click on button, pressing enter within one of fields...) 在触发提交事件的任何形式的表单数据实际发送之前,它将被调用(单击按钮,在字段之一内按Enter ...)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM