Я написал код, который будет проверять две даты - они разбиты на два дня (# enddate-1-dd, # date-1-dd), два месяца ввода (# enddate-1-mm, #date -1-мм) и двухгодичные входы (# enddate-1, # date-1)Могу ли я упростить/оптимизировать этот код JQuery?
Я хотел проверить прежде всего, что все они на самом деле являются номерами, но затем я хотел проверить каждый, чтобы убедиться это в формате даты, на данный момент это так:
function validate_form() {
retVal = true; // if the statements below fail, return true
if(retVal == true) {
// check whether the available hours they've entered are a valid time!
$(":text").each(function() {
$this = $(this); // cache the object
if (isNaN($this.val())) {
$this.focus();
$.jGrowl('Please enter a valid date!', { theme: 'smoke' });
retVal = false; return false;
}
});
}
if(retVal == true) {
$("#date-1-dd").each(function() {
$this = $(this); // cache the object
if ($this.val() > 31) {
$this.focus();
$.jGrowl('Please enter a valid day, should be no more than 31!', { theme: 'smoke' });
retVal = false; return false;
}
});
}
if(retVal == true) {
$("#enddate-1-dd").each(function() {
$this = $(this); // cache the object
if ($this.val() > 31) {
$this.focus();
$.jGrowl('Please enter a valid day, should be no more than 31!', { theme: 'smoke' });
retVal = false; return false;
}
});
}
if(retVal == true) {
$("#date-1-mm").each(function() {
$this = $(this); // cache the object
if ($this.val() > 12) {
$this.focus();
$.jGrowl('Please enter a valid month, should be no more than 12!', { theme: 'smoke' });
retVal = false; return false;
}
});
}
if(retVal == true) {
$("#enddate-1-mm").each(function() {
$this = $(this); // cache the object
if ($this.val() > 12) {
$this.focus();
$.jGrowl('Please enter a valid month, should be no more than 12!', { theme: 'smoke' });
retVal = false; return false;
}
});
}
if(retVal == true) {
$("#date-1").each(function() {
$this = $(this); // cache the object
if ($this.val() < 1900 || $this.val() > 3000) {
$this.focus();
$.jGrowl('Please enter a valid year!', { theme: 'smoke' });
retVal = false; return false;
}
});
}
if(retVal == true) {
$("#enddate-1").each(function() {
$this = $(this); // cache the object
if ($this.val() < 1900 || $this.val() > 3000) {
$this.focus();
$.jGrowl('Please enter a valid year!', { theme: 'smoke' });
retVal = false; return false;
}
});
}
return retVal; // return either true or false, depending on what happened up there!^
}
Извините, если это кажется, что я задать глупый вопрос, так как мой код работает нормально, я просто думаю, что это мусорный путь делая это, с множеством повторений, но я не могу думать о каком-либо способе сделать это более эффективно?
Благодаря
Это фантастика, спасибо! – Nick