JQuery 验证 - 隐藏字段

JQuery Validation - hidden fields

我有一个隐藏字段,当用户使用

单击缩略图(class 为 'thumbnail')时,该字段会被填充(通过 Jquery)
<input type="hidden" id="DocThumbnail" name="DocThumbnail" value=""/>

$(".Thumbnail").click(function() {
    var thumbnailFile = $(this).attr("src");
    $("#DocThumbnail").val(thumbnailFile);
});

我已按如下方式设置 jquery 验证:

$("#AddDocumentForm").validate({
    ignore: [], 
    rules: {
        DocThumbnail : { required : true}
    },
    messages: {
        DocThumbnail: "Please choose a thumbnail"
    }
});

当我单击 AddDocumentForm 上的提交按钮时出现错误,因为隐藏字段的值为空,但是当我单击缩略图时(class 为 'thumbnail')然后隐藏字段已填充,但验证警报保持打开状态,因此表单不会提交。

有谁知道我如何验证 jquery 填充的隐藏字段,就好像我不添加忽略:[];行然后在验证中忽略隐藏字段

修改DocThumbnail的值后需要调用Validator.element方法。这告诉 jQuery Validate 重新检查 DocThumbnail 这将使错误消息消失。

您更新后的代码如下所示:

var validator = $("#AddDocumentForm").validate({
    ignore: [], 
    rules: {
        DocThumbnail : { required : true}
    },
    messages: {
        DocThumbnail: "Please choose a thumbnail"
    }
});

$(".Thumbnail").click(function() {
    var thumbnailFile = $(this).attr("src");
    $("#DocThumbnail").val(thumbnailFile);
    validator.element($('#DocThumbnail'));
});

您可以在此处查看工作示例:http://jsfiddle.net/ryleyb/r0rkfykg/