javascript中的多个“AND”条件

时间:2017-01-13 09:09:29

标签: javascript

我遇到需要在JavaScript函数中使用三个 条件的情况。

我已经编写了这样的代码

    if (( frm_add_announcement.sublink[0].checked == true )) {
    if ((document.getElementById('captionurl').value.trim() == "") && 
    ( document.getElementById("captionfile").files.length == 0 ) && 
    (document.getElementById('ifpresent').value != "1")) {
    alert("Enter a url/upload a file");
    //var alertmsg=document.getElementById("captionfile").value;
    //alert(alertmsg);
    document.getElementById('captionurl').focus();
    return false;
    }
    }

但它不起作用。没有控制台错误

2 个答案:

答案 0 :(得分:1)

您的代码没问题且没有错误,但我发现您可以通过创建变量来创建重构,而不是执行2 if个语句,您只能执行一个:

var captionurl = document.getElementById('captionurl'),
    captionfile = document.getElementById('captionfile'),
    ifpresent = document.getElementById('ifpresent');

if (frm_add_announcement.sublink[0].checked &&
    captionurl.value.trim() === '' &&
    captionfile.files.length === 0 &&
    ifpresent.value !== '1') {
    alert('Enter a url/upload a file');
    //var alertmsg=captionfile.value;
    //alert(alertmsg);
    captionurl.focus();
    return false;
}

请注意"但它没有工作"不表达什么是具体结果

答案 1 :(得分:0)

您的代码在语法上看起来很好。如果您错过了这部分,您需要在需要的地方拨打function。另一个可能的问题是,您可能需要检查captionurl中是否有值,文件数是否大于0且ifpresent值是1.在这种情况下,您需要三个或条件:

if (( frm_add_announcement.sublink[0].checked == true )) {
    if ((document.getElementById('captionurl').value.trim() == "") || 
        ( document.getElementById("captionfile").files.length == 0 ) || 
        (document.getElementById('ifpresent').value != "1")) {
        alert("Enter a url/upload a file");
        //var alertmsg=document.getElementById("captionfile").value;
        //alert(alertmsg);
        document.getElementById('captionurl').focus();
        return false;
    }
}

你也可能想要否定你的第一个条件。