2016-04-30 11 views
1

Telerik Kendo DatePickerForコントロールを使用すると数日ブロックされました。 DatePickerForコントロールを追加する前に、他のすべてのコントロールがうまくいきました。 'ProjectName'ドロップダウンリストやその他のチェックボックス(この記事では無視される)を検証し、UIページの上部にすべてのエラーメッセージが表示されることを想定しています。日付ピッカーコントロールと検証を追加した後、モデルは正しいhttp投稿とdatetimeを取得しますが、入力が無効であれば検証メッセージは表示されません。日付時間ピッカーコントロールを削除すると、検証は正常に戻ります。どんな手がかりもありがとう。剣道DatePickerFor with JQueryの有効性

CSHTML

@section Scripts { 
    @Scripts.Render("~/bundles/kendo") 
    <script src="~/Scripts/custom.validate.js"></script> 
    <script type="text/javascript"> 
     $.validator.setDefaults({ 
      ignore: "" 
     }); 
    </script> 
} 
@(Html.Kendo().DropDownListFor(model => model.ProjectName).Name("ProjectName")...) 
@Html.Kendo().DatePickerFor(model => model.UptoTimestamp) 

モデル

public class IntegrationModel 
{ 
    public string ProjectName { get; set; } 
    public DateTime? UptoTimestamp { get; set; } 
} 

jQueryのバリデータ

$(document).ready(function() { 

$.validator.addMethod("validateType", 
    function (value, element) { 
     return $('#rbFor')[0].checked || $('#rbRev')[0].checked; 
    }); 

$.validator.addMethod("validateUptoTimestamp", 
    function (element) { 
     var value = $(element).val(); 
     var date = kendo.parseDate(value); 
     if (!date) { 
      return false; 
     } 
     return true; 
    }); 

$('#schedule_form').validate({ 
rules: { 
     ProjectName: { 
      required: true 
     }, 
     UptoTimestamp: { 
      validateUptoTimestamp: true 
     } 
    }, 
    messages: { 
     ProjectName: { 
      required: "Please select a project" 
     }, 
     UptoTimestamp: { 
      required: "Please provide a valid time stamp" 
     } 
    }, 
    errorContainer: $('#errorContainer'), 
    errorLabelContainer: $('#errorContainer ul'), 
    wrapper: 'li' 
}); 
}) 

答えて

1

は隠しフィールドを検証するためのバリデータを設定してみてください。剣道はその日付の元の入力を隠すでしょう。

$("#schedule_form").validate().settings.ignore = ":hidden:not(input)"; 
関連する問題