我正在使用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