我想提交一个表格(没有<表格>标签),当我按键盘上的回车键时


I want to submit a form( without <form> tag ), when I press enter key on keyboard

<input type="text" name="username" id="username" placeholder="Username" />
<input type="password" name="password" id="password" placeholder="Password" />
<input type="submit" name="submit" onclick="validLogin()" class="submit" value="Login">

这是我的表格,当我填写密码字段,然后点击钥匙表格上的回车键时,应该提交。

编辑:表单提交代码

function validLogin(){ 
  var uname=$('#username').val(); 
  var password=$('#password').val(); 
  var dataString = 'uname='+ uname + '&password='+ password; 
  $("#flash").show(); 
  $("#flash").fadeIn(400).html('<img src="image/loading.gif" />');
  $.ajax({ 
    type: "POST", 
    url: "login.php", 
    data: dataString, 
    cache: false, 
    success: function(result){
      var result = trim(result);
      $("#flash").hide();
      if(result=='correct'){
        window.location='al‌​l_departments.php';
      }else{
        $("#errorMessage").html(result);
      } 
    }
  });
} 

这不是一个表单,这些只是几个输入标签。如果您想提交表单...你首先必须有一个表格。

如果要避免通过 AJAX 正常提交表单,请在表单的提交处理程序中使用e.preventDefault()return false;

这是可能的,但你不应该瞄准这种方法 - 以下是原因:

1( 由于 HTML 标准,需要表单标记。2( 如果没有表单标签,您将无法指定表单的方法 (GET/POST( 和目标。

也就是说 - 您可以使用纯 JavaScript 实现提交数据,收集在您的输入标签中,但这不是有效的 HTML,某些浏览器可能无法容忍这一点 - 所以不要这样做......

如果我

正确理解了您的问题,您可以尝试在密码字段中添加onkeyup属性,然后检查按下了哪个键。

<input type="password" ... onkeyup="myFunction()" />

或者,你也可以尝试jQuery的keyup bind,它看起来像这样:

$( "#password" ).keyup(function(evt) {
    if(evt.which == 13) { //If they press enter
        // Your AJAX code here
    }
});

希望这有帮助!