清理/重构Jquery事件绑定以避免可能的重复

时间:2012-06-24 09:55:43

标签: jquery ajax

还有另一种编写此代码的方法吗?我认为这有点不专业和凌乱

基本上代码通过“回车键”和鼠标“点击”提交表单,那么还有另一种方式吗?

$("#form-signup-login input#login-submit").click(function()
{
    doLogin();
});
$('input#login-request-username-email, input#login-request-password').keyup(function(e){
    if(e.keyCode == 13)
        doLogin();
});

谢谢你的时间!

4 个答案:

答案 0 :(得分:3)

您是否正在寻找submit事件处理程序? http://api.jquery.com/submit/

答案 1 :(得分:0)

$("#login-submit").click(doLogin);

$('#login-request-password').keyup(function(e){
    if(e.keyCode === 13)
        doLogin();
});

说明:

  1. 不需要在容器中添加id选择器,因为它们在页面上是唯一的,并且您将回退到比sizzle引擎更快的本机getElementById方法。
  2. 您可以在第一种情况下使用函数指针,无需构建另一个回调函数
  3. 我只想在密码字段上绑定keyup事件而不是用户名字段,因为那里有一个自然流
  4. 或者绑定表单提交,默认为您处理所有这些..

    $("#form-signup-login").submit(doLogin);
    

答案 2 :(得分:0)

看起来你想在提交时这样做:为什么不使用:

$("#form-signup-login").on("submit", function() {
    doLogin();
    return false;
});

其中id是表单的ID,而不是任何输入。

答案 3 :(得分:0)

$("#form-signup-login").submit(function (ev){
  // Do not let the browser handle the submit action
  ev.preventDefault();
  // Execute your custom submit function
  doLogin();
});

瞧!