条件验证 - Jquery

时间:2018-03-05 12:32:29

标签: javascript jquery jquery-validate

我已经很好地研究并使用了它,但我不知道它仍然会出错。 我需要检查现有图像是否存在,然后文件属性应该跳过验证,反之亦然。

HTML COde:

<input  type="file" name="image" id="image">    
<input type="hidden" name="old_image" value="">

JQuery验证码:

$("#add_reference").validate({
        rules: {
            link: {   
                required: true,
            },
            image:{
                //required: true,
                required: function(element) {
                    if ($("#old_image").val() == '') 
                    {
                        return true;
                    } 
                    else 
                    {
                        return false;
                    }
                },
                accept:"jpg,png,jpeg,gif"
            },
        },       
        messages: {

            link: {
                required: "Please enter link title",
            },
            image:{
                required: "Please choose image",
                accept: "Please choose valid image files",
            },
        },
        errorPlacement: function (error, element) {
            var attr_name = element.attr('name');
            error.insertAfter(element);            
        }
    });

有谁能告诉我哪里出错了?

2 个答案:

答案 0 :(得分:2)

输入标记中没有id,而应添加id属性。

<input type="hidden" name="old_image" id="old_image" value="">

你正在通过id

来调用它
if ($("#old_image").val() == '')

答案 1 :(得分:1)

<input  type="file" name="image" id="image">    
<input type="hidden" id="old_image" name="old_image" value="">

你的验证不会因为它总是通过测试而被激发,你正在测试#old_image是否为空并且你可以看到它总是空的,你是否在上传文件后触发了一个事件?

你可以用这个活动来做..

$(function() {
     $("input:file").change(function (){
       var fileName = $(this).val();
       $("#old_image").val(fileName);
     });
  });