动态表单的jQuery验证不起作用

时间:2013-09-19 06:01:12

标签: jquery ajax asp.net-mvc jquery-validate unobtrusive-validation

我正在检索带有ajax的表单,一旦我收到表单并将其添加到DOM,我尝试使用jQuery为它添加一些验证,结果不符合预期。

我从AJAX调用中插入页面的HTML是:

<form id="accept-form">
    <input id="txName" type="text" value="" name="txName" data-val-required="Please Select A Valid User" data-val="true">
    <span class="field-validation-valid" data-valmsg-for="txName" data-valmsg-replace="true"></span>
</form>

然后我将此表单附加到我的页面并尝试为它创建一个jQuery验证器,如下所示:

$("#accept-form").validate({
    rules: {
        txName: {
            required: true
        }
    },
    messages: {
        txName: {
            required: "Enter your name"
        }
    }
});

然后,当我按下提交按钮时,无论txName字段是否为空,我都有一个返回True的警报集:

alert($("#accept-form").valid());

已经尝试了几种不同的方法,会对我可能做错的任何想法表示赞赏。

2 个答案:

答案 0 :(得分:4)

答案就是我使用验证器解析html的方式。

var form = $("#accept-form");

form.unbind();
form.data("validator", null);
$.validator.unobtrusive.parse(form);

答案 1 :(得分:1)

将javascript代码放入文件中,并在ajax成功时将文件链接到主html页面。

如果在ajax完成之前将其链接到您的页面,则不会发生任何事情。