ASP.NET で生成されたフォームの検証を実行するように検証プラグインを構成しようとしています。
<script type="text/javascript">
$(document).ready(function () {
$("#aspnetForm").validate({
rules: {
"<%=ProjectName.ClientID%>": { required: true, minlength: 8 }
},
messages: {
"<%=ProjectName.ClientID%>": { requred: "can not be empty", minlength: "type at least 8 chars" }
},
invalidHandler:
function (form, validator) {
alert('validation failed!');
},
errorLabelContainer: $("#alert")
});
});
</script>
HTML は次のようになります。
<form name="aspnetForm" method="post" action="CreateProject.aspx"
onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_ShutUpPostbackButton')"
id="aspnetForm" enctype="MULTIPART/FORM-DATA">
<input id="ctl00_JQueryContent_ProjectName" type="text" style="width:99%;" maxlength="50" name="ctl00$JQueryContent$ProjectName">
</form>
何らかの理由で、作成された FORM タグに (ページの読み込み後)
novalidate="novalidate"
包含。それがどこから来たのか、それが私の検証に干渉するかどうかはわかりません。
INPUT に INVALID という 1 文字を入力すると、プラグインは INPUT 要素に class="valid" を設定して反応します。つまり、何かが機能しています。
これを機能させることに加えて、検証結果に応じて入力要素 (主にボタン) を無効/有効にする方法を知る必要があります。私はinvalidHandlerについて知っていますが、有効な結果のハンドラーは何でしょうか? 入力中にすべての検証を行う必要があることに注意してください。