我有一个javascript函数,希望验证是否填充了两个文件输入中的一个,但目前我遇到的问题是,只有两个输入字段都填充时验证才起作用(即错误消息将隐藏) ..
任何人都能明白为什么我会得到这个吗?
function validateFileInput() {
var ownImage = $('#fileField').val();
console.log(ownImage);
var defaultImage = $('#defImage').val();
console.log(defaultImage);
if (ownImage == "" || defaultImage == "") {
$('#image_error').addClass('error-message');
$(".error-message").css('display', 'inline-block');
return false;
} else {
$('#image_error').removeClass('error-message');
$("#image_error").css('display', 'none');
return true;
}
}
在运行功能之前登录控制台时,我得到
ownImage = ""
defaultImage = ""
当我然后将文件上传到两个字段时,我得到下面的输出并验证通过
ownImage = "filename.jpg"
defaultImage = "4" // Im passing a data-attribute-id here
如果我只上传一张图片,则验证失败。如果其中一个输入字段有上传
,我希望验证通过任何帮助表示赞赏
由于
答案 0 :(得分:4)
如果要填充 ,则if (ownImage == "" || defaultImage == "")
应为if (ownImage == "" && defaultImage == "")
即。仅当x 和 y为空时才显示错误消息。如果填充了其中任何一个,则继续。
答案 1 :(得分:2)
我认为该行
if (ownImage == "" || defaultImage == "") {
应该阅读
if (ownImage == "" && defaultImage == "") {
如果两个上传中的一个为空,则第一个代码将激活错误程序
如果 上传都为空
,则最后一个代码将激活错误程序答案 2 :(得分:1)
您需要使用
if (ownImage == "" && defaultImage == "")
它基本上像这样工作
if (file1 is uploaded AND file2 is uploaded ){
//True only if Both conditions satisfied.
}
检查" ownImage"没有价值和" defaultImage"也没有任何值。你使用OR布尔运算符,即使只满足一个条件,条件为TRUE。