使用MVC Razor视图引擎;我有一个在属性上具有标准必需属性的模型和一个通过ajax回调呈现的局部视图。主视图包含表单,而部分只包含显示模板等,为了在客户端触发数据注释,我必须执行以下操作;
$('#MyButton').click(function () {
$('#MyContainer').load("MY_ACTION_URL", function () {
var form = $("#ReserveForm");
form.removeData('validator');
form.removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse(form);
});
});
以上工作很棒,它重新启动了我的客户端验证,并且它们完美无缺。问题是我有一些自定义的Jquery验证没有触发。例如;
$('#ReserveForm').validate({
ignoreTitle: true,
errorLabelContainer: '#errorContainer',
errorClass: 'ClientSide-Validation-errors'
});
$.validator.addMethod('myCustomValidation',
function (value, element, param) {
return $(element).val() == '' && param == true;
}, 'my message');
$('#MYINPUT').rules("add",
{
myCustomValidation: true
});
上面的自定义验证是在已准备好的部分文件中声明但没有运气。
PS,如果我在页面加载时渲染部分(例如在RenderAction中),则自定义验证可以正常运行。
任何帮助表示感谢。
答案 0 :(得分:0)
我相信这是重复的。 您不希望在局部视图中使用脚本。您应该提取脚本并在父视图中为部分声明它们。