在这种情况下,如何使Jquery验证有条件地触发?

前端之家收集整理的这篇文章主要介绍了在这种情况下,如何使Jquery验证有条件地触发?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用jquery Validator Framework来验证表单,它由输入类型的文本和文件元素组成.

最初当页面加载在编辑模式(窗体将填充所有值)

所以当点击提交按钮时,应该跳过输入类型文件的Jquery验证(因为它已经有一个值)
它必须被触发,只会使用户删除图片并尝试提交表单.

这是我的jscode

jQuery(document).ready(function()
{
        $("#description").text('Iniital Value');
        var defimg = 'https://www.gstatic.com/webp/gallery3/1.png';
        $("#previewpicimg").attr('src',defimg);
        $('#pacinsertform').validate(
        {
                rules:
                {
                        previewpic:
                        {
                                required: true
                        },description:
                        {
                                required: true
                        }
                },messages:
                {
                        previewpic:
                        {
                                required: "Upload Image required",},description:
                        {
                                required: "description  required",}
                },highlight: function(element)
                {
                        $(element).parent().addClass('error')
                },unhighlight: function(element)
                {
                        $(element).parent().removeClass('error')
                },submitHandler: function(event,validator)
                {
                        if ($("#pacinsertform").valid())
                        {
                                ajaxInsertPac();
                                return false;
                        }
                }
        });
});
$("#previewpic").change(function()
{
        $("#previewpic").blur().focus();
});

function ajaxInsertPac()
{
        alert('ajax call heer');
        return false;
}
$(document).on("click",".removepic",function(event)
{
        $("#previewpic").attr('name','previewpic');
});
$(document).on("click",".resetform",function(event)
{
        $("#description").val('');
        $(".removepic").trigger("click");
        $("#pacinsertform").validate().resetForm();
});

http://jsfiddle.net/Luf0ks9b/61/

解决方法

您可以为验证码设置一个函数,而不仅仅是一个直的true或false,这样可以检查您的previewpicimg图像是否被设置,而不是验证输入.

在验证设置中:

previewpic: {
    required: function(element) {
        if ($("#previewpicimg").attr('src') !== '') {
            return false;
        } else {
            return true;
        }
    }
}

当预览输入被验证时,它将首先检查previewpicimg是否设置了源属性,如果是,则不需要输入,否则必须具有值.

JSFiddle

原文链接:https://www.f2er.com/jquery/180249.html

猜你在找的jQuery相关文章