Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
if语句返回true,不检查所有if语句-javascript_Javascript - Fatal编程技术网

if语句返回true,不检查所有if语句-javascript

if语句返回true,不检查所有if语句-javascript,javascript,Javascript,嗨,当逐个测试时,我的所有代码都工作得很好,但是当我将它们全部插入时,如果达到第一个if语句,它将返回true并提交表单,而不验证其他语句。。有人能告诉我如何更改代码,以便在返回true之前运行所有IF语句吗 这是我的密码 if (this.element.find('#visitdate').length > 0) { var dateParts = $('#tvisitdate').val().split('/'); var check = new Date(d

嗨,当逐个测试时,我的所有代码都工作得很好,但是当我将它们全部插入时,如果达到第一个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;
    }
}
使用布尔(真/假)变量,然后在代码末尾返回该变量。这样,您只有一条返回语句:

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;

您不应该对每个if条件使用return,在这种情况下,最好为first if指定一个布尔值,无论是true还是false。如果值为true,则处理第二个if条件,并根据条件将值更改为true或false,并在最后一个条件中返回此值。您会没事的。

缩进代码,然后出现解决方案。您能给我一个代码示例吗…基本
if
用法。。。第一个嵌套if返回true或false,因此在第二个嵌套if之前退出。