2017-05-02 13 views
1

私はdatepicker変更イベントでは、次のASP.NET MVCのフォームがあります。上記のコードで剣道日付ピッカー変更イベントは発生しません

<div id="container"> 
    @using (Html.BeginForm("Reload", "DateOfFile", FormMethod.Post, new { returnUrl = this.Request.RawUrl, id = "formDate" })) 
    { 
     @(Html.Kendo().DatePicker() 
      .Name("DateOfFile") 
      .Value(Session["DateOfFile"] == null ? DateTime.Now : Convert.ToDateTime(Session["DateOfFile"].ToString())) 
      .Events(e => e 
      .Change("dt_picker_change") 
     ) 
     ) 
      @Html.Hidden("returnUrl", this.Request.RawUrl) 

      <script> 
       function dt_picker_change() { 
        $("#container").kendoValidator({ 
         rules: { 
          dateValidator: function (input) { 
          var value = $(input).val(); 
          var date = kendo.parseDate(value); 
          //alert(date) 
          if (!date) { 
           return false; 
          } 
          $("#formDate").submit(); 
         } 
        }); 
       } 
      </script> 
    } 
</div> 

、のみ送信されたフォームを私はDatePickerコントロールの外のどこかをクリックしますが、カレンダーで日付が変更されるとすぐに送信する必要があります。

私には何が欠けていますか?

+0

期待どおり動作しているようですが、テキスト入力の変更イベントは、フォーカスが失われたときにのみ発生します。おそらく、カレンダーのクリックなどに基づいて自分のイベントを作成する必要があります。非常に混乱しているように見えるので、この要件を再検討したいかもしれません。 – Seano666

+0

@geneは以下の解決策を試しましたか?それは動作しますか? –

答えて

0

バリデーターにvalidateOnBlur:falseを設定して、入力時の入力を検証しようとしましたか?

<div id="container"> 
     @using (Html.BeginForm("Reload", "DateOfFile", FormMethod.Post, new { returnUrl = this.Request.RawUrl, id = "formDate" })) 
     { 
      @(Html.Kendo().DatePicker() 
       .Name("DateOfFile") 
       .Value(Session["DateOfFile"] == null ? DateTime.Now : Convert.ToDateTime(Session["DateOfFile"].ToString())) 
       .Events(e => e 
       .Change("dt_picker_change") 
      ) 
      ) 
       @Html.Hidden("returnUrl", this.Request.RawUrl) 

       <script> 
        function dt_picker_change() { 
         $("#container").kendoValidator().data("kendoValidator").validate(); 
        } 

        $("#container").kendoValidator({ 
          validateOnBlur: false, 
          rules: { 
           dateValidator: function (input) { 
           var value = $(input).val(); 
           var date = kendo.parseDate(value); 


           //alert(date) 
           if (!date) { 
            return false; 
           } 
           $("#formDate").submit(); 
          } 
         }); 

       </script> 
     } 
    </div> 
関連する問題