繁体   English   中英

条件验证-jQuery

[英]Conditional Validation - Jquery

我已经对此进行了充分的研究和使用,但我不知道它仍然会出错。 我需要检查是否存在现有图像,然后文件属性应跳过验证,反之亦然。

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);            
        }
    });

谁能告诉我我要去哪里错了吗?

您的输入标签中没有id,而是应添加id属性。

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

而您通过id调用它

if ($("#old_image").val() == '')
<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);
     });
  });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM