0
이 자습서 here을 따라 왔으며 서로 비교 한 날짜 유효성 검사 방법을 보여줍니다. 내가 주석을 달았습니다 코드의 첫 번째 블록에서 오류가 있어요 그리고 그것은 "정의되지 않은 또는 null 참조"이 코드 라인에서 유래의 속성 '요소'를 얻을 수 없다는 것을 말한다 customValidation.formValidator = $ (event.data .source) .closest ('form'). data ('validator') 누구든지이 문제를 해결할 수 있는지 알 수 없으므로 오류가 발생하지 않습니다. 나는 최근 눈에 거슬리지 유효성 검사를 사용하고눈에 거슬리는 날짜 비교 유효성 검사기
window.customValidation = window.customValidation ||
{
relatedControlValidationCalled: function (event) {
if (!customValidation.activeValidator) {
customValidation.formValidator = $(event.data.source).closest('form').data('validator');
}
// code error below
customValidation.formValidator.element($(event.data.target));
},
relatedControlCollection: [],
formValidator: undefined,
addDependatControlValidaitonHandler: function (element, dependentPropertyName) {
var id = $(element).attr('id');
if ($.inArray(id, customValidation.relatedControlCollection) < 0) {
customValidation.relatedControlCollection.push(id);
$(element).on(
'blur',
{ source: $(element), target: $('#' + dependentPropertyName) },
customValidation.relatedControlValidationCalled);
}
}
};
어댑터 :
$.validator.unobtrusive.adapters.add('comparedates', ['otherpropertyname', 'allowequality'],
function (options) {
options.rules['comparedates'] = options.params;
if (options.message) {
options.messages['comparedates'] = options.message;
}
}
);
검증 방법 : 양식이 DOM에 전에
$.validator.addMethod('comparedates', function (value, element, params) {
var otherFieldValue = $('input[name="' + params.otherpropertyname + '"]').val();
if (otherFieldValue && value) {
var currentValue = Date.parse(value);
var otherValue = Date.parse(otherFieldValue);
if ($(element).attr('name').toLowerCase().indexOf('begin') >= 0) {
if (params.allowequality) {
if (currentValue > otherValue) {
return false;
}
} else {
if (currentValue >= otherValue) {
return false;
}
}
} else {
if (params.allowequality) {
if (currentValue < otherValue) {
return false;
}
} else {
if (currentValue <= otherValue) {
return false;
}
}
}
}
customValidation.addDependatControlValidaitonHandler(element, params.otherpropertyname);
return true;
}, '');
유효성 검사기 플러그인에 대한 cdn 링크를 확보하고 jsfiddle.net에서 문제를 복제하는 데모를 만듭니다. – charlietfl