2014-01-17 26 views
0

我只能够得到一个按钮,通过建立2个独立事件的工作原理:按钮与可以单击或按下Enter键

$('#loginSubmit').click (function() 
{ 
      var userName = $('#userName').val(); 
      var password = $('#password').val(); 
          event.preventDefault(); 
          $.ajax({ 
              type: "POST", 
              url: "auth.php", 
              data:"userName="+userName+"&password="+password, 
              success: function(result) 
              { 
                //$('#mainBody').html(result); 
                window.location.replace('chooseGroup.php'); 
              } 
            }) 
}); 


$('input').keypress(function(event) 
{ 
    if (event.which == 13) { 

      var userName = $('#userName').val(); 
      var password = $('#password').val(); 
          event.preventDefault(); 
          $.ajax({ 
              type: "POST", 
              url: "auth.php", 
              data: "userName="+userName+"&password="+password, 
              success: function(result) 
              { 
                //$('#mainBody').html(result); 
                window.location.replace('chooseGroup.php'); 
              } 
            }) 
        } 
    }) 
    }); 

HTML:

<div class='Lrow'><input type='button' id='loginSubmit' value='Login'></div> 

我知道有可能是一个更好的方法。我爱听到它。无论如何,如果我使用mozilla浏览器,在按键功能中“事件”是不确定的。这在铬中工作正常。有什么想法吗?

+1

'type =“submit”'而不是'type =“button”'? – Krishna

+0

这实际上是一种形式吗?为什么不处理表单的'submit'事件而不是按钮的'click'? – Mathletics

+0

@Krishna会提交帮助来调用ajax调用? – Miller

回答

4

将公共代码放入函数中。

var mySubmitFunction (event) { 
    //the code 
} 

$('#loginSubmit').on("click", mySubmitFunction); 
$('input').keypress(function(event){ 
    if (event.which == 13) { 
     mySubmitFunction(event); 
    } 
}); 

但不听点击一个更好的方式/确定键。更好的方法是让表单按照自己的意愿去做。

表单将在您输入正确时提交。您只需添加一个提交按钮和一个提交事件。您取消提交,并进行Ajax调用。设置按钮类型提交,它应该工作。奖金是如果JS被禁用,表单仍然提交给服务器。

$("#YourForm").on("submit", function(event){ /* code here */ }); 
+0

似乎更加整齐,然后我有,我将使用。谢谢。然而,这是如何处理新闻输入事件? – bart2puck

+0

哎呀。你只是编辑。我看看 – bart2puck

+0

你走了。处理按钮而不是表单本身几乎总是错误的方法。 – Mathletics

0

把你的代码中的功能,例如:ajaxSubmit()然后使用jquery on打电话给你的功能

function ajaxSubmit(){ 
    var userName = $('#userName').val(); 
    var password = $('#password').val(); 
    event.preventDefault(); 
    $.ajax({ 
     type: "POST", 
     url: "auth.php", 
     data: "userName="+userName+"&password="+password, 
     success: function(result){ 
      //$('#mainBody').html(result); 
      window.location.replace('chooseGroup.php'); 
     } 
    }); 
} 

$('#loginSubmit').on("click", ajaxSubmit); 

$('#loginSubmit').on("click", function(event){ 
    if (event.which == 13) { 
     ajaxSubmit(event); 
    } 
}); 
0

在方法需要一个或多个PARAMS作为事件名称如下:

$('#loginSubmit').on("click keypress", function(event){ 

    if (event.type == "keypress") { 
    if(event.which == 13) 
    { 
     put your code here or call function 
    } 
    } 
else//click event 
    { 
     put your code here or call function 
    } 

}); 
相关问题