날짜 필드와 클라이언트 측 유효성 검사가 활성화 된 간단한 MVC3 양식이 있습니다 (jquery.validate/jquery.validate.unobtrusive). 문서 당 날짜 필드에 datepicker (jQuery UI)를 첨부하는 코드를 추가했습니다. 그러나 datepicker가 제출 단추를 클릭하기 전에 클릭 한 날짜 필드가 유효하지 않으면 마지막으로 해당 필드의 datepicker가 자동으로 표시됩니다. 나는 이것을 원하지 않는다. 어떻게 비활성화 할 수 있습니까?jQuery validate plugin with datepicker - 유효하지 않은 날짜로 인해 datepicker 팝업이 발생합니다.
편집 :
focusInvalid: function() {
if(this.settings.focusInvalid) {
try {
$(this.findLastActive() || this.errorList.length && this.errorList[0].element || [])
.filter(":visible")
.focus()
// manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
.trigger("focusin");
} catch(e) {
// ignore IE throwing errors when focusing hidden elements
}
}
},
: 그것은 수동으로 아래 focusInvalid() 함수를 사용하여 마지막 활성 입력 컨트롤에 초점을 시도처럼
검증 플러그인에 대한 코드를 검토 한 후, 그것은 본다 이 문제를 처리하기위한 2 가지 옵션이있는 것으로 보입니다. 하나는 유효성 검사기 자체의 focusInvalid 설정을 false로 설정하는 것입니다. 필자는 폼의 FIRST 유효하지 않은 요소에 초점을 맞출 수 있기 때문에 focusInvalid 함수 대신 원숭이 패치를 선택했습니다. 반드시 마지막 활성 요소 일 필요는 없습니다.
$('form').data('validator').focusInvalid = function() {
$(this.currentForm).find('.input-validation-error').first().focus();
};
그러나이 문제에 대한 다른 접근 방법을 듣고 싶습니다. 당신이 그것을 날짜 선택기가 자동으로 표시되지 않습니다 이런 식으로 할 경우 경우 유효성 검사가 실패
showOn: 'button', showButtonPanel: true, buttonImage: '<your image file>',
buttonImageOnly: true,
buttonText: 'Choose a Date',
: