【问题标题】:How can I check a input field exists in the form when I submit it to the server?当我将表单提交到服务器时,如何检查表单中是否存在输入字段?
【发布时间】:2011-11-03 00:37:03
【问题描述】:

当我将表单提交到服务器时,如何检查表单中是否存在输入字段?

例如,我想检查表单中是否存在名为“mem_follow”的复选框。

或者我必须使用 javascript (jquery) 吗?

【问题讨论】:

    标签: php jquery validation


    【解决方案1】:

    我猜您需要在提交表单后在服务器端进行检查。如果是这样的话,你可以这样检查......

    <?php
    if (isset($_POST['mem_follow']))
    {
        // Work your server side magic here
    } else {
        // The field was not present, so react accordingly
    }
    ?>
    

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      它必须是 Javascript。 PHP 无法从服务器进入浏览器的内部并为您检查。它只能检查字段名是否存在于提交的数据中。

      在 jquery 中这很简单:

      if ($('input[name="nameoffield"]')) { ... field exists ... }
      

      当然,这提出了一个问题……为什么你需要知道一个字段是否存在?大概您是构建表单的人。您应该已经知道该字段是否存在。

      【讨论】:

      • 谢谢。实际上我从服务器端需要它。有时我在表单中有一个复选框,有时没有。所以我想让它在服务器端动态化。
      • if (isset($_REQUEST['nameoffield'])) { ... it was submitted ... }
      • 使用if (isset($_POST['mem_follow'])) { // do something }
      【解决方案3】:

      在以下脚本中,除非选中复选框,否则表单不会提交。如果您尝试,则会显示带有错误消息的隐藏 div,让您知道原因。

      <form action="test.php" method="post" id="myform">
          <input type="checkbox" name="checkbox" id="checkbox" value="YES" />
          <input type="submit" name="submit" value="submit" />
      </form>
      <div id="error_message_div" style="display:none">You must tick the checkbox</div>
      <script>
          $('#myform').submit(function() {
              if($('#checkbox').attr('checked')) {
                  return true;
              } else {
                  $("#error_message_div").show();
                  return false;
              }
          });
      </script>
      

      干杯 马特

      【讨论】:

        【解决方案4】:

        您可以通过两种方式做到这一点:

        通过服务器端:在 php 中

        <?php
        if (isset($_POST['mem_follow'])
        {
            // Work your server side magic here
        } else {
            // The field was not present, so react accordingly
        }
        ?>
        

        通过客户端:在 Jquery 中

        $('#submit_button').click(function() {
          if ($('input[name="box_name"]')) {
            if($('input[name="box_name"]').attr('checked')) {
                return true;
            } else {
                return false;
            }
          }
        });
        

        【讨论】:

          【解决方案5】:

          您可以使用 jQuery 并执行以下操作:

          $('#myForm').submit(function (e) {
              if($(this).children(':checkbox[name=mem_follow]').length > 0)
                  //exists
              else
                  //doesn't exist
          });
          

          或者使用 php 并检查是否有任何名为 'mem_follow' 的变量:(这是用于 POST,虽然它是 GET 还是 POST 无关紧要)

          if(isset($_POST['mem_follow']))
              //exists
          else
              //doesn't exist
          

          【讨论】:

            【解决方案6】:

            您可以以submit 事件处理程序的形式尝试此代码

            if($("input[name=mem_follow]").length > 0){
                //It exists
            }
            

            【讨论】:

              【解决方案7】:

              这里的其他答案是正确的:您必须在客户端这样做。在复选框输入字段的情况下,如果未选中该框,则不能保证浏览器将包含该字段的 POST 参数。

              例如,如果您在未选中复选框的情况下提交此表单:

              <form action="test.php" method="post">
                  <input type="checkbox" name="checkbox" value="YES" />
                  <input type="submit" name="submit" value="submit" />
              </form>
              

              只会提交submit=submit 参数。

              所以,不,您不能保证给定的复选框存在于服务器端的表单中。

              【讨论】:

                【解决方案8】:

                所有元素都可以试试这个

                number = document.form_name.elements.length;
                

                其他输入的特定名称使用此

                number = document.form_name.getElementsBYName('Name of Input').length;
                

                就是这样

                享受

                【讨论】:

                  【解决方案9】:

                  我建议你使用 Jquery

                  $.fn.Exists = function() {
                  return $(this).length>0;
                  }
                  
                  if ($("here are your selector to check").Exists()) {
                      ...
                  }
                  

                  简单实用! 你可以在任何地方使用这个Exists 方法))))

                  【讨论】:

                    【解决方案10】:

                    您可以使用 javascript(或 jQuery)来做到这一点:

                    <script>
                        $('#myform').submit(function() {
                            if($('#yourFieldId').val()=='') {
                                alert('the field ' + $('#yourformField').name() + ' is empty !');
                                return false;
                            } else {
                                return true;
                            }
                        });
                    </script>
                    

                    您可以对所有字段逐一执行此操作,或者将所有条件放在 if 语句中。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2019-06-26
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2014-02-09
                      • 2014-09-13
                      • 2017-09-25
                      相关资源
                      最近更新 更多