当我按下键盘上的Enter键时,我想提交一个表单(没有<form>标签)

时间:2015-10-27 13:59:35

标签: javascript php jquery html forms

<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);
      } 
    }
  });
} 

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

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

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

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

希望这有帮助!