У меня есть datepicker
, который определен как date-picker
класс. Я хочу проверить, действительна ли дата, я имею в виду, когда пользователь изменяет дату на клавиатуре, например, если наступает день более 31 или месяц более 12, он должен дать ошибку. Я написал эту функцию isValidDate
, но она не работает нормально. Я где-то читал, что есть функция valid()
для датпикеров.datepicker valid() функция проверки правильности даты
$(function() {
$(".date-picker").datepicker({
dateFormat: 'dd/mm/yy'
});
$(".date-picker").each(function() {
$(this).add($(this).next()).wrapAll('<div class="imageInputWrapper"></div>');
});
$('input:button').click(function(e) {
$("#fDate").removeClass("red");
var fromDate = $("#fDate").val();
if (!isValidDate(fromDate)) {
$("#fDate").addClass("red");
}
if (errors) e.preventDefault();
});
function isValidDate(date) {
var matches = /^(\d{2})[-\/](\d{2})[-\/](\d{4})$/.exec(date);
if (matches == null) return false;
var d = matches[2];
var m = matches[2];
var y = matches[3];
if (y > 2100 || y < 1900) return false; // accept only recent & not too far years
var composedDate = new Date(y, m, d);
return composedDate.getDate() == d && composedDate.getMonth() == m && composedDate.getFullYear() == y;
}
});
.imageInputWrapper {
width: 172px;
border: solid 1px white;
background-color: white;
display: flex;
align-items: center;
box-shadow: 0 2px 2px 0 #C2C2C2;
}
.red {
box-shadow: 0px 0px 2px 2px red;
}
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<script src="https://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<form>
<input id="fDate" class="date-picker" type="text" name="fromDate" style="width: 130px; height: 41px; background-color: white; border: none; outline: none; margin-left:5px" />
<img src="http://s9.postimg.org/nl2mcq2rv/calendar.png" id="fromDateImgId">
<br/>
<input type="button" value="submit">
</table>
</form>
при вставке 44 в секции дня он не будет давать какие-либо ошибки в своем коде.
проблема не проверить, если это число или нет, я хочу, чтобы это не идти дальше, чем предел, дни и месяцы – reshad
'Date.parse() 'проверяет, что ваша строка даты действительна или нет, это не только проверка числа. 'Date.parse (« 44/04/2016 ») // -> NaN' ' Date.parse («01/04/2016») // -> 1451840400000' – hitamu