2017-05-02 1 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> 
관련 문제