【问题标题】:Adding validation with MVC 3 & jQuery Validator in execution time在执行时使用 MVC 3 和 jQuery Validator 添加验证
【发布时间】:2011-02-24 11:54:56
【问题描述】:

当页面加载时,我有一个由 c# 呈现的带有验证的表单, 呈现的字段如下:

<input autocomplete="off" class="input-validation-error" data-val="true" data-val-number="The field Idade must be a number." data-val-range="message here" data-val-range-max="25" data-val-range-min="16" data-val-required="The Idade field is required." id="Content_MyFieldId" maxlength="3" name="Content.MyFieldId" value="0" type="text">

我正在尝试将一个新的 html 对象与 jQuery 的示例相同,但是当我提交表单时,这个新字段没有得到验证。

有没有办法使用 jQuery 在这个字段中添加验证?

PS:我不想像这样使用手动方法:

$("#field").rules("add", {
    required: true,
    messages: {
        required: "Required input"
    }
});

因为我在输入框里有规则,所以我只想应用它。

【问题讨论】:

  • 所以您目前正在使用非侵入式客户端验证,但您动态添加的字段没有得到验证?
  • 可以提供样品吗?你可以使用jsfiddle.net来做。

标签: c# jquery asp.net-mvc jquery-validate


【解决方案1】:

感觉有点像 hack,但这是我的做法。

// Target Form
var $form = $("**form selector**");

// Unbind existing validation
$form.unbind();
$form.data("validator", null);

// Check document for changes
$.validator.unobtrusive.parse(document);

// Re add validation with changes
$form.validate($form.data("unobtrusiveValidation").options);

丰富

【讨论】:

  • @kim3er 嗨,谢谢,但是 $.unobtrusive.parse(document) 说 $.unobtrusive 是未定义的,如果我使用 $.validator.unobtrusive.parse(document) 只说未定义(两者在萤火虫中)。
  • @Cesar 你是对的。在 MVC3 中,他们将 jQuery 移到了一个外壳中。解析函数必须以其他方式公开。我会仔细看看。
  • @Cesar,抱歉忽略最后一条评论。 $.validator.unobtrusive.parse 在我的示例页面中公开。
  • @Cesar 但对 jQuery 验证设置没有影响。这在 MVC2 中要容易得多。我会再做一些测试。
  • 我遇到了同样的问题,但是在使用您的代码后,它显示“无法获取属性 'options' 的值:对象为 null 或未定义”
【解决方案2】:

我在这里用

解决了
jQuery.validator.unobtrusive.parseElement($("#element")[0], false);
$.validator.unobtrusive.parseDynamicContent($("#element")[0]);

parseDynamicContent 我得到了here

【讨论】:

  • 这不起作用,因为在字段名称中有“。”和 ”[]”。谢谢
  • @Caser: 由var id -document.getElementByName(name)[0].id; 解决,而不是在 jquery 选择器中使用 ID 而不是名称,它适用于我
  • 你拯救了我的一天!但是,您的代码的第二行对我不起作用,parseDynamicContent 是未知的。也没有必要。
猜你喜欢
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多