代码之家  ›  专栏  ›  技术社区  ›  Bits Please

条件验证-Jquery

  •  0
  • Bits Please  · 技术社区  · 7 年前

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

    HTML代码:

    <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 回复  |  直到 7 年前
        1
  •  2
  •   Bits Please    7 年前

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

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

    你用身份证打电话

    if ($("#old_image").val() == '')
    
        2
  •  1
  •   Renzo Calla    7 年前
    <input  type="file" name="image" id="image">    
    <input type="hidden" id="old_image" name="old_image" value="">
    

    您的验证不会触发,因为它始终通过测试,您正在测试#old\u image是否为空,如您所见,它始终为空,您是否在上载文件后触发事件???

    您可以使用此事件执行此操作。。

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