通过ajax动态加载部分视图时验证不起作用

时间:2013-06-15 10:23:20

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

我遇到的情况是,当通过jquery ajax调用动态加载内容时,我无法应用验证...

我到处找到这个解决方案,但不知道如何使用在哪里编写这段代码?

$('form').removeData("validator");
$('form').removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse('form');

我之前的问题

中我的代码为HERE

1 个答案:

答案 0 :(得分:2)

我确实知道这是一个老问题。但是对于将来来这里的人来说可能会有用。

这很简单,就是在成功的ajax请求之后运行上面的代码。

$.ajax({
    url: editPageUrl,
    contentType: 'application/html; charset=utf-8',
    type: 'GET',
    dataType: 'html',
    data: { id: taskId },
    cache: false,
    success: function (data) {
        var taskBody = $('#task-body');
        $(taskBody).html(data);
        var $form = $(taskBody).find('form');
        $form.removeData("validator");
        $form.removeData("unobtrusiveValidation");
        $.validator.unobtrusive.parse($form);
    }
});

当ajax请求完成后,只需重置验证即可。这样做会将所有元素添加到jquery验证中,并在#taskeditform-b​​ody

内的表单上触发验证