【问题标题】:JQuery Validation - hidden fieldsJQuery 验证 - 隐藏字段
【发布时间】:2015-10-28 11:12:57
【问题描述】:

当用户点击缩略图(带有“缩略图”类)时,我有一个隐藏字段会被填充(通过 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 上的提交按钮时,错误显示为隐藏字段的值为空,但是当我单击缩略图(具有“缩略图”类)时,隐藏字段被填充但验证警报保持打开状态,因此表单不会提交。

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

【问题讨论】:

  • 如果您使用的是 1.9 或更高版本的插件,您是否看到过:stackoverflow.com/questions/8466643/…?
  • 使用版本 14,是的,我看过那篇文章,但甚至添加了 $.validator.setDefaults({ ignore: '' });在 document.ready 之外没有得到它的工作

标签: jquery validation hidden


【解决方案1】:

更改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/

【讨论】:

  • 感谢 Ryley,我通过在 $(".Thumbnail").click(function() 中使用 Jquery 来删除验证创建的错误标签(如果存在),但您的方法是清洁工
猜你喜欢
  • 2012-12-06
  • 1970-01-01
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 2017-08-01
  • 2013-11-04
相关资源
最近更新 更多