我已经阅读了这里与此问题相关的大部分帖子,但我仍然看不出问题所在。有人可以看一下吗?我收到错误“无法读取未定义的属性‘不引人注目’”如果我注释掉该行,那么我会得到“无法读取未定义的属性‘选项’”所以显然我有一些不正确的引用,但我看不到它。如果我取出所有验证代码,表单就会弹出并且工作正常,但当然没有验证。另外,我尝试用“#updateContactForm”代替“#updateDialog”并得到相同的结果。希望这是一些简单的东西,只是我看得太久就看不出来了。提前致谢!
<div id="updateDialog" title="Update Contact"></div>
<script type="text/javascript">
var linkObj;
$(function () {
$(".editLink").button();
$("#updateDialog").dialog({
autoOpen: false,
width: 400,
resizable: false,
modal: true,
buttons: {
"Update": function () {
$("#update-message").html(''); //make sure there is nothing on the message before we continue
$("#updateContactForm").submit();
},
"Cancel": function () {
$(this).dialog("close");
}
}
});
$(".editLink").click(function () {
//change the title of the dialog
linkObj = $(this);
var dialogDiv = $("#updateDialog");
var viewUrl = linkObj.attr('href');
$.get(viewUrl, function (data) {
dialogDiv.html(data);
//validation
var $form = $("#updateContactForm");
$form.unbind();
$form.data("validator", null);
$.validator.unobtrusive.parse($("#updateDialog"));
// Re add validation with changes
$form.validate($form.data("unobtrusiveValidation").options);
//open dialog
dialogDiv.dialog("open");
});
return false;
});
最佳答案
只是检查一下,您是否在 cshtml 或母版页中正确引用了 jquery 验证脚本?
您应该首先加载脚本 jquery.validate.js
,然后加载 jquery.validate.unobtrusive.js
脚本。
关于javascript - 部分 View 中不显眼的客户端验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669745/