if语句返回true,而不是遍历我的所有if语句-javascript

if statements returning true and not going over all of my if statements - javascript

本文关键字:if 语句 我的 -javascript 遍历 返回 true      更新时间:2023-09-26

嗨,我的所有代码在逐一测试时都很好,但当我将它们全部插入时,如果到达第一个if语句,它将返回true并提交表单,而不验证其他语句。。有人能告诉我如何更改我的代码,这样它就会在返回true之前运行所有的IF语句吗。

这是我的代码

    if (this.element.find('#visitdate').length > 0) {
    var dateParts = $('#tvisitdate').val().split('/');
    var check = new Date(dateParts[2], dateParts[1]-1, dateParts[0], 0,0,0,0);
    var d = new Date();
    var today = new Date(d.getFullYear(), d.getMonth(), d.getDate());
    if (today.getTime() > check.getTime() ) {
        _errMsg = "Please enter a future visit date";
        return false;
    } else {
        return true;
    }
}
if (this.element.find('#birthdate').length > 0) {
    var dateParts1 = $('#birthdate').val().split('/');
    var check1 = new Date(dateParts1[2], dateParts1[1]-1, dateParts1[0], 0,0,0,0).getFullYear();
    var today1 = new Date();
    var year = today1.getFullYear();
    if (check1 >= year) {
        _errMsg = "Please enter a valid date of birthday";
        return false;
    } else {
        return true;
    }
}

使用布尔值(true/false)变量,然后在代码末尾返回该变量。通过这种方式,您只有一个退货声明:

var check_no_error = true;
if (this.element.find('#visitdate').length > 0) {
    var dateParts = $('#tvisitdate').val().split('/');
    var check = new Date(dateParts[2], dateParts[1]-1, dateParts[0], 0,0,0,0);
    var d = new Date();
    var today = new Date(d.getFullYear(), d.getMonth(), d.getDate());
    if (today.getTime() > check.getTime() ) {
        _errMsg = "Please enter a future visit date";
        check_no_error = false;
    }
}
if (this.element.find('#birthdate').length > 0) {
    var dateParts1 = $('#birthdate').val().split('/');
    var check1 = new Date(dateParts1[2], dateParts1[1]-1, dateParts1[0], 0,0,0,0).getFullYear();
    var today1 = new Date();
    var year = today1.getFullYear();
    if (check1 >= year) {
        _errMsg = "Please enter a valid date of birthday";
        check_no_error = false;
    }
}
return check_no_error;

在这种情况下,如果为true或false,则not use return for each if condition应该更好地为第一个赋值。如果该值为true,则处理第二个if条件,并根据条件将该值更改为true或false,最后返回该值。