2017-04-04 8 views
0

나는 datepicker를 가지고 있으며 그것에 대한 유효성 검사는 blur 이벤트입니다. 유효성 검사가 실패하면 사용자에게 메시지를 표시하고 datepicker에 다시 집중합니다. 그러나 재귀 적으로된다.검도 datepicker 결과에 유효성 검사 추가 recusrive call

메시지가 항상 나타납니다. 그녀가 페이지를 죽이지 않으면 사용자는 루프를 얻을 수 없습니다.

(function() { 
 
    $("#kendoDatePicker").kendoDatePicker(); 
 

 
    $("#kendoDatePicker").on("blur", function() { 
 
    if ($(this).data("kendoDatePicker").value() > new Date()) { 
 
     alert("Date cannot be greater than today. Please re-enter."); 
 
     var datepicker = $(this).data("kendoDatePicker"); 
 
     datepicker.element.focus(); 
 
    } 
 
    }); 
 
})();
<script src="http://cdn.kendostatic.com/2012.2.913/js/kendo.all.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="demo-section k-content"> 
 
    <input id="kendoDatePicker" value="04/04/2017" style="width: 100%" /> 
 
</div>

바이올린

가 여기에 있습니다 : https://jsfiddle.net/Hd47F/312/

답변

0

글쎄, 당신은 당신이 흐림 이벤트에 다시 날짜 선택기를 집중된다는 사실을 직접 밝혔다. 물론 재귀 적입니다. 유효성 검사 로직을 datepicker의 blur 이벤트 대신 form submit 이벤트에 넣거나 유효성 검사 후 datepicker에 집중하지 않을 수 있습니다.

그런데 유효성 검사가 필요하지 않습니다. 사용자가 앞으로 날짜를 선택할 수 없도록 datepicker의 최대 날짜를 오늘 날짜로 설정할 수 있습니다. 그러면 사용자 친화적입니다.

+0

입력 해 주셔서 감사합니다. 왜 재귀 적으로되는지 설명해 주실 수 있습니까? 나의 요구 사항은 사용자에게 오류/경고 메시지를 표시하고 올바른 날짜를 입력하도록 강제하는 것입니다. 다른 방법으로도이를 수행 할 수 있습니까? –

+0

입력에 초점을 맞추면 유효성 검사가 다시 트리거됩니다. – ataravati