我正在使用MVC 2.0框架的客户端验证功能
(使用Html.ValidationMessageFor()
和Html.EnableClientValidation()
)。
当我以简单的形式使用验证时,一切都很好。
但是当我通过jQuery Ajax获取此表单时
$.get('PathToMyForm', function(htmlResult) {
$('selector').html(htmlResult);
});
客户端验证不起作用。为什么呢?
答案 0 :(得分:7)
如果您正在使用jquery.validate(特别是使用MVC)并且您正在通过AJAX加载页面,则需要在页面加载后进行以下调用:
$.validator.unobtrusive.parse($("#validation"));
在我的博文中查看更多内容:Using Unobtrusive jQuery Validation with Forms Loaded via AJAX
答案 1 :(得分:0)
也许jQuery没有评估Ajax响应的JavaScript代码?
尝试在Ajax调用上使用dataType属性
$.get('PathToMyForm', {dataType 'html'}, function(htmlResult) {
$('selector').html(htmlResult);
});
dataType 默认值:智能猜测(xml,json,script或html)
您期望从服务器返回的数据类型。如果没有指定,jQuery将智能地尝试获取结果,基于响应的MIME类型(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,以及任何东西else将作为字符串返回。)
答案 2 :(得分:0)
我在MVC验证和部分视图方面遇到了问题。我通过使用jquery.validate.js而不是内置客户端验证来对其进行排序。你可以尝试一下。