0

このコードで名前フィールドに何も入力せずに送信ボタンをクリックすると、validate() 関数が開始され、「このフィールドは必須です」と表示されます。サーバー側のフォームタグを追加するまで、これは正常に機能します。このタグがそこにあると(ページの他のものに必要になりますが、ページがすぐにポストバックを実行するため、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 つのフォームを持つことは正しくないと指摘し、以下のコード (フォームの 1 つを削除したもの) は正常に動作するようになりました。ありがとう!

<!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 に答える