验证按钮

时间:2013-01-24 04:46:17

标签: javascript jquery

我首先通过电子邮件(强制和正确的格式)进行验证,然后在按钮提交上进行文件上传(空白或正确格式)。
这里的电子邮件验证很好,但是如果它是空白的,则在文件上传中它也会显示一个不需要的错误。

代码:

<script type="text/javascript">

    $(document).ready(function () {

     $("#button").click(function () {

         var email = $("#person_email").val();
         var img = $("#person_avatar").val();

         if (email == null || email == "" || !email.match(/^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$/))

         {
             $("#valid").show();
             return false;

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

         {
             $("#valid_1").show();
             return false;
         } else {
             return true;
         }
     });
 });
</script>

3 个答案:

答案 0 :(得分:3)

尝试更改

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

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

答案 1 :(得分:2)

使用而不是或。也可能值得在这个问题上检查null

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

问题在于你说“当它不是空的它是一个不正确的文件格式时,显示错误信息”。由于img == ""将失败第一个条件,它将落到第二个条件。由于""不是您批准的文件类型之一,因此传递该测试,并进入错误代码。

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

实际上,无论你输入的是什么,它都会进入if块 - 如果它是空的那么它是一个错误的文件类型,但如果它不是空的那么它不是空的所以它通过第一次测试。

答案 2 :(得分:1)

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

编辑此内容。