このコードで名前フィールドに何も入力せずに送信ボタンをクリックすると、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>