1

부트 스트랩 2를 사용하는 템플릿을 사용합니다.이 템플릿에는 datepicker 플러그인과 유효성 검사 필드 플러그인이 있습니다.bootstrap datepicker plugin issue

유효성을 검사 할 수 있도록 datepicker에서 입력 한 날짜를 가져와야합니다. 문제는 한 번에 그것을 읽지 않는다는 것입니다. 이렇게하려면 두 번 클릭해야합니다. 그래서 이것으로 인해 유효성 검사 플러그인과의 통합이 제대로 작동하지 않습니다. 그것은 두 번째 클릭 이후에 유효성을 검사합니다 ... 뭐가 잘못 될 수 있습니까?

HTML 코드 :

<div class="span6"> 
    <div class="control-group"> 
    <label class="control-label">V&aacute;lido Desde<span class="required">*</span></label> 
     <div class="controls"> 
     <div class="input-icon left"> 
      <i class="icon-calendar"></i> 
      <input class="m-wrap m-ctrl-medium date-picker" size="16" type="text" value="{$okInfo['start_date']}" placeholder="dd/mm/yyyy" id="start_date" name="start_date" data-date="" data-date-format="dd/mm/yyyy"/> 
     </div>  
     </div> 
    </div> 
    </div> 

그때 내가 플러그인에서 JS 파일이 (조각) :

if (jQuery().datepicker) { 
    $('.date-picker').datepicker({ 
    rtl : App.isRTL(), 
    autoclose: true, 
    }); 
} 

마지막으로 검증 파일 :

var FormValidation = function() { 

var handleValidation2 = function() { 

var form2 = $('#form_sample_2'); 
var error2 = $('.alert-error', form2); 
var success2 = $('#myModal', form2); 

    form2.validate({ 
     errorElement: 'span', //default input error message container 
     errorClass: 'help-inline', // default input error message class 
     focusInvalid: false, // do not focus the last invalid input 
     ignore: "", 
     onfocusout: function (element) { 
      $(element).valid(); 
     },    
     rules: { 
      start_date: { 
       required: true, 
       valid_date: true 
      }, 
     }, 

답변

3

나는 생각 이 문제는 onfocusout에서 발생하는 유효성 검사 호출과 관련이있을 수 있습니다.

jQueryUI는 날짜가 onfocusout 인 텍스트 상자를 업데이트하므로 기술적으로 상자가 비어 있고 유효성 검사가 필요하지 않습니다.

유효성 검사에 시간 초과를 추가 해보시겠습니까?

onfocusout: function (element) { 
    setTimeout(function(element){ 
     $(element).valid(); 
    },1000); 
}, 

코드는 이전과 동일한 명령을 실행해야하지만 1 초 지연됩니다.

+0

안녕하세요, 의견을 보내 주셔서 감사합니다. 이 코드를 어떻게 내 제품과 통합해야합니까? – Limon

+1

아래에 나열된 원본 코드를 내 코드로 바꾸기 만하면됩니다. 다시 말하지만,이 테스트를 거치지 않았으므로 도움이 더 필요하면 알려주십시오. onfocusout : function (element) { $ (element) .valid(); }, – Nick

+0

시도했지만 작동하지 않습니다. – Limon