在执行时添加MVC 3和jQuery Validator验证

Ces*_*sar 13 c# asp.net-mvc jquery jquery-validate

我有一个表单,在加载页面时由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">
Run Code Online (Sandbox Code Playgroud)

我正在尝试将一个新的html对象等同于jQuery的示例,但是当我提交表单时,这个新字段不会被验证.

有办法使用jQuery在此字段中添加验证吗?

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

$("#field").rules("add", {
    required: true,
    messages: {
        required: "Required input"
    }
});
Run Code Online (Sandbox Code Playgroud)

因为我在输入字段中有规则,所以我只想应用它.

kim*_*3er 23

感觉有点像黑客,但这就是我做的.

// 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);
Run Code Online (Sandbox Code Playgroud)

丰富

  • 我有同样的问题,但在使用你的代码之后,它说"无法获得属性'选项的值':对象为null或未定义" (2认同)

Zot*_*ote 6

我用这里解决了

jQuery.validator.unobtrusive.parseElement($("#element")[0], false);
$.validator.unobtrusive.parseDynamicContent($("#element")[0]);
Run Code Online (Sandbox Code Playgroud)

parseDynamicContent我来到这里