사용자가 같은 달에 최대 1 일부터 최대 4 일까지 제출하는 그림 입력 양식. 나는 다음과 같이 설정 :JS : 변환 문자열을 사용하여 날짜에 연결 한 다음 모든 메소드를 사용하여 잘못된 입력을 확인하는 방법은 무엇입니까?
// 월 (6)로부터 3 월까지 분노 날짜를 hardcoeding 9
app.controller...
$scope.rangeValidator = {
startDate: '06/03/2017',
endDate: '09/03/2017'
}
//Setting calendar available start and end date.
$scope.initCalendar = function() {
$('#reclamoFecha .input-group.date').datepicker({
multidate: true,
multidateSeparator: ",",
format: "dd/mm/yyyy",
startDate: $scope.rangeValidator.startDate,
endDate: $scope.rangeValidator.endDate,
language: "es"
});
};
이 범위의 날짜 입력 만 제출되는지 확인하고 싶으면 거짓으로 경고가 실행됩니다. 사용자 datepicker 입력이 String으로 기록 될 때 많은 날짜가 제출 될 때마다 날짜가 기록 된 문자열의 일부가되므로 배열로 분할해야합니다. 20/03/2017이 경고를 트리거 submited된다
// returns: "06/03/2017,07/03/2017,08/03/2017,09/03/2017"
$scope.validRangeDate = $rootScope.reclamo.fechas.split(',');
$scope.validateForm(function() {
$scope.validRangeDate = $rootScope.reclamo.fechas.split(',');
console.log($scope.validRangeDate);
//returns: ['06/03/2017','07/03/2017','08/03/2017','09/03/2017',]
배열의 "모든"메서드를 사용하여 startdate와 enddate 사이의 범위를 설정하려고 생각했습니다. 문자열을 Date로 변환해야하는지 잘 모르겠습니다. 또한 함수에서 해당 메서드를 사용하는 방법을 잘 모르겠습니다.
$.validator.addClassRules({
myDateFieldRangeValidate: {
dateRange: {
from: fromDate,
to: toDate
}
}
});
: 유효한 범위에 대한 두 개의 매개 변수를 전달하기 위해
$.validator.addMethod("dateRange", function(value, element, params) {
try {
var date = new Date(value);
if (date >= params.from && date <= params.to) {
return true;
}
} catch (e) {}
return false;
}, 'Date out of range');
그런 다음 상대 class rules을 추가
이미 양식이 있습니다. 새 날짜 입력이 범위를 벗어난 경우 유효성을 검사하기 위해 반환 된 배열에 액세스해야합니다. foreach 루프 내에서 Try Catch를 사용하여 각 배열 요소의 조건이 충족되는지 테스트 한 다음 무언가를 실행할 수 있습니까? – Istman