カスタムのクライアント側検証を実装しようとしていますが、機能していません。Codeproject http://www.codeproject.com/Articles/275056/Custom-Client-Side-Validation-in-ASP-NET-MVC3の記事に基づいています
ここでもSOを見ましたが、正しい方法で実装していると思いますが、何かを見落としています。私の目標は、日付を検証することです(必須、日付形式で、フォームの別の日付より前ではありません)。最初の 2 つはデータ注釈で実行でき、最後の 1 つはカスタム検証で行う必要があります。
基本クラスにいくつかのデータ注釈があります (ClassLibrary は VB.NET にあります):
Imports System.ComponentModel
Imports System.ComponentModel.DataAnnotations
<MetadataType(GetType(CM_CONTRACTVALIDATIONData))>
Partial Public Class CM_CONTRACTACTIVATION
'...
End Class
Public Class CM_CONTRACTVALIDATIONdata
'...
<DataType(DataType.Date)>
<Required()>
Public Property TakeBackDeviceWhen
'..
End Class
JavaScript ファイルに、カスタム メソッドを追加しました。
//validation
$.validator.addMethod("checkPickupDate", function (value, element) {
return false;
});
$("#form").validate({
rules: {
TakeBackDeviceWhen: {
checkPickupDate: true
}
},
messages: {
TakeBackDeviceWhen: {
checkPickupDate: "Test"
}
}
}
);
私の chtml ファイルは次のとおりです。
@Html.TextBox("TakeBackDeviceWhen", Model.TakeBackDeviceWhen.HasValue ? Model.TakeBackDeviceWhen.Value.ToShortDateString() : "", new { style = "Width: 200px" })
結果の HTML は次のようになります。
<input id="TakeBackDeviceWhen" class="hasDatepicker" type="text" value="" style="Width: 200px" name="TakeBackDeviceWhen" data-val-required="The TakeBackDeviceWhen field is required." data-val="true">
タイプ検証もカスタム検証も実装されていないようです。
何がうまくいかないのですか?