0

当在此代码中单击提交按钮时,名称字段中没有任何内容,验证()函数应该启动并说“此字段是必需的”。这工作正常,直到我添加服务器端表单标签。一旦这个标签在那里(我将需要它来处理页面上的其他事情,validate() 函数似乎根本不会运行,因为页面会立即进行回发,其中 validate() 函数会阻止表单提交时验证失败。

下面的代码是非工作代码。如果我取出该行和最后一个关闭表单标签(标签,它会起作用 - 它会验证,显示“此字段是必需的”,并成功阻止表单加载。

所以我的问题是,为什么这不适用于服务器端表单标签?

<!DOCTYPE html>
<html>
    <head>
      <script src="http://code.jquery.com/jquery-latest.js"></script>
      <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
      <script type="text/javascript">
          $(document).ready(function () {
              $("#nameForm").validate();
          });
      </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <form id="nameForm" method="get" action="">
                <p>
                    <label for="cname">Name</label>
                    <em>*</em>
                    <input id="cname" name="name" size="25" class="required" minlength="2" />
                </p>
                <p>
                    <input class="submit" type="submit" value="Submit"/>
                </p>
            </form>
        </form>
    </body>
</html>
4

2 回答 2

1

Floradu88 注意到有 2 个表单是不正确的,下面的代码(删除了其中一个表单)现在似乎可以正常工作,谢谢!

<!DOCTYPE html>
<html>
    <head>
      <script src="http://code.jquery.com/jquery-latest.js"></script>
      <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
      <script type="text/javascript">
          $(document).ready(function () {
              $("#form1").validate();
          });
      </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <p>
                <label for="cname">Name</label>
                <em>*</em>
                <input id="cname" name="name" size="25" class="required" minlength="2" />
            </p>
            <p>
                <input class="submit" type="submit" value="Submit"/>
            </p>
        </form>
    </body>
</html>
于 2013-04-10T13:21:38.753 回答
0

这是因为 html 中不支持嵌套表单,嵌套表单会被忽略,您可以通过在主表单后添加 empty from 来解决它

你编码

<!DOCTYPE html>
<html>
    <head>
      <script src="http://code.jquery.com/jquery-latest.js"></script>
      <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
      <script type="text/javascript">
          $(document).ready(function () {
              $("#nameForm").validate();
          });
      </script>
    </head>
    <body>
        <form id="form1" runat="server">
 <form></form>
            <form id="nameForm" method="get" action="">
                <p>
                    <label for="cname">Name</label>
                    <em>*</em>
                    <input id="cname" name="name" size="25" class="required" minlength="2" />
                </p>
                <p>
                    <input class="submit" type="submit" value="Submit"/>
                </p>
            </form>
        </form>
    </body>
</html>

参考链接 jQuery Validation Issue with a form inside a form

于 2015-07-18T20:07:28.550 回答