Javascript 按钮上的验证

Javascript 按钮上的验证,javascript,jquery,Javascript,Jquery,我首先对电子邮件(强制且正确的格式)进行验证,然后在“提交”按钮上对文件上传(空白或正确格式)进行验证。 此处电子邮件验证良好,但在文件上载中,如果为空,则也会显示不需要的错误 代码: $(文档).ready(函数(){ $(“#按钮”)。单击(函数(){ var email=$(“#个人电子邮件”).val(); var img=$(“#人像”).val(); 如果(email==null | | email==“”| | |!email.match(/^[a-z0-9U\+-]+(\.[a

我首先对电子邮件(强制且正确的格式)进行验证,然后在“提交”按钮上对文件上传(空白或正确格式)进行验证。
此处电子邮件验证良好,但在文件上载中,如果为空,则也会显示不需要的错误

代码:


$(文档).ready(函数(){
$(“#按钮”)。单击(函数(){
var email=$(“#个人电子邮件”).val();
var img=$(“#人像”).val();
如果(email==null | | email==“”| | |!email.match(/^[a-z0-9U\+-]+(\.[a-z0-9U\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*([a-z]{2,4}$/)
{
$(“#有效”).show();
返回false;
}如果(!img==“”| | |!img.match(/(\.bmp |\.png |\.jpg |\.jpeg |\.gif)$/),则为else
{
$(“#有效_1”).show();
返回false;
}否则{
返回true;
}
});
});
尝试更改

(!img == "" || !img.match(/(\.bmp|\.png|\.jpg|\.jpeg|\.gif)$/))


使用and代替or。也可能值得在这一点上检查
null

...
} else if (img != null && img != "" && !img.match(/(\.bmp|\.png|\.jpg|\.jpeg|\.gif)$/)) {
     $("#valid_1").show();
     return false;
}
问题是,您说的是“当它不是空的或文件格式不正确时,显示错误消息”。由于
img==”
将使第一个条件失败,因此它将落在第二个条件下。由于
不是您批准的文件类型之一,因此它通过了该测试,并进入错误代码

相反,您需要说“当它不是空的并且文件格式不正确时,显示消息”。这样,当它为空时,第一次测试失败,因此整个条件失败

事实上,无论您在字段中输入什么,它都将一直输入
if
块-如果它为空,则它是错误的文件类型,但如果它不是空的,则它不是空的,因此它通过了第一次测试

(!img == "" || !img.match(/(\.bmp|\.png|\.jpg|\.jpeg|\.gif)$/))
(!img == "" && !img.match(/(\.bmp|\.png|\.jpg|\.jpeg|\.gif)$/))
编辑这个

...
} else if (img != null && img != "" && !img.match(/(\.bmp|\.png|\.jpg|\.jpeg|\.gif)$/)) {
     $("#valid_1").show();
     return false;
}
(!img == "" || !img.match(/(\.bmp|\.png|\.jpg|\.jpeg|\.gif)$/))
(!img == "" && !img.match(/(\.bmp|\.png|\.jpg|\.jpeg|\.gif)$/))