我遇到需要在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;
}
}
但它不起作用。没有控制台错误
答案 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;
}
}
你也可能想要否定你的第一个条件。