【问题标题】:I want to submit a form( without <form> tag ), when I press enter key on keyboard [closed]当我按下键盘上的回车键时,我想提交一个表单(没有 <form> 标签)[关闭]
【发布时间】:2015-10-27 13:59:35
【问题描述】:
<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);
      } 
    }
  });
} 

【问题讨论】:

  • 为什么不使用form 标签?这就是它的目的
  • 如果不是表单就不能提交表单……想想这个逻辑。
  • 实际上可以“提交”没有表单标签的“表单”。你需要的是一个ajax函数,例如使用 jquery,它将通过 id 获取值。但是没有理由不使用表格。
  • 实际上我是通过 Ajax 发布数据,所以每当我使用表单标签 ajax 时都不起作用
  • 你应该使用表单标签。您仍然可以使用 jquery 使用 $.ajax 调用将输入数据发送到服务器。

标签: javascript php jquery html forms


【解决方案1】:

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

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

【讨论】:

  • 您实际上可以在没有表单的情况下进行 ajax 后请求,例如使用 jquery.ajax()
  • 是的,但这和“提交表单”不一样,对吧?
  • @TanuelMategi 是的,你可以。但问题是关于发布表单,即使使用 ajax 我仍然会使用表单。
  • 好吧,它并不完全是“提交表单”,但单击“提交”按钮的用户并不知道这一点。是的,这是不好的做法,因此应始终使用表单标签。
【解决方案2】:

这是可能的,但您不应该针对这种方法 - 原因如下:

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

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

【讨论】:

  • 我正在指定使用 ajax 的方法这是我的 ajax 代码: function validLogin(){ var uname=$('#username').val(); var 密码=$('#password').val(); var dataString = 'uname='+ uname + '&password='+ 密码; $("#flash").show(); $("#flash").fadeIn(400).html(''); $.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】:

如果我正确理解了您的问题,您可以尝试在密码字段中添加 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
    }
});

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2012-01-20
    • 1970-01-01
    • 2013-06-22
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    相关资源
    最近更新 更多