【问题标题】:submit a form on 'enter' key press [duplicate]在“输入”键上提交表单[重复]
【发布时间】:2015-05-16 18:03:21
【问题描述】:

我想在“输入”键中提交表单值。我现在有一个按钮搜索来提交值值。但是我想在输入键按下时没有搜索按钮。

  html
    <input class="stxt" type="text" name="searchtxt"><a style="padding-right:2ex;"></a>
   <button name="search" class="search">Search</button></p>

  php
     if(isset($_REQUEST['search']))
       {
         $search=$_REQUEST['searchtxt'];
         some code here
       }

【问题讨论】:

  • 我想触发php代码而不是js。
  • 如果您有一个表单和一个具有提交类型的按钮/输入,当表单中的输入获得焦点时,它将自动单击输入时的提交按钮

标签: php jquery html forms


【解决方案1】:

该按钮应该在Enter 上提交,如果不是,则 HTML 中存在您未提供的内容。您已使用 JQuery 标记了该问题,但未提供任何代码,因此我只能假设您仅通过 PHP 提交表单。

查看button 文档。有两段与您的情况相关。

表单 HTML5
按钮关联的表单元素(其表单所有者)。属性的值必须是 a 的 id 属性 同一文档中的元素。如果没有这个属性 指定,元素必须是表单的后代 元素。此属性使您可以放置​​元素 文档中的任何位置,而不仅仅是他们的后代 元素。

这意味着对于提交表单的按钮,它必须在form 标记内。如果不是,则需要像这样指定表单id。

<button form="form_id"> 

第二条相关信息。

类型
按钮的类型。可能的值为:
submit: 按钮将表单数据提交到服务器。如果未指定属性,或者如果该属性是 动态更改为空值或无效值。
重置:按钮将所有控件重置为其初始值。
按钮:按钮没有默认行为.它可以具有与元素事件相关联的客户端脚本,这些事件在 事件发生了。

由于type默认为submit,这意味着表单将使用Enter键提交。

【讨论】:

    【解决方案2】:

    如果我理解正确,您希望在每次按键时触发 php 代码,在这种情况下,好的解决方案将是使用 AJAX。

     $( "#target" ).keypress(function(e) {
         $.ajax({
                url: "logic.php",
                type: post,
                data: $('form').serialize(),
                success: function( data ) {
                    //Process data received from server.
                }
              });
     });
    

    在每次按键时,所有表单数据都将被序列化并发送到服务器,您可以在其中执行您的逻辑。

    【讨论】:

      【解决方案3】:

      试试下面的代码,它会工作的。我只编写了没有按钮的代码。

      <?php 
      if(isset($_POST['search']))
      {
          echo $search = $_POST['search'];
      }
      ?>
      <html>
      <head>
      
      <script>
          document.onkeydown=function(evt){
              var keyCode = evt ? (evt.which ? evt.which : evt.keyCode) : event.keyCode;
              if(keyCode == 13)
              {
                  //your function call here
                  document.test.submit();
              }
          }
      </script>
      </head>
      <body>
      <form name="test" action="#" method="POST">
      <input type="text" name="search" />
      </form>
      </body>
      </html>
      

      【讨论】:

      • 如果我在一个循环中有多个表单,如何将其用于某个按钮?
      猜你喜欢
      • 2019-02-07
      • 2012-05-05
      • 2020-10-06
      • 1970-01-01
      • 2014-12-16
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      相关资源
      最近更新 更多