【发布时间】:2011-08-20 00:53:54
【问题描述】:
更新: 我已经使用 Razor HTML 5 创建了一个新的 MVC 3 项目,然后我在 JQuery 1.6 中使用 NuGet 更新了该项目,并且验证插件不再起作用,它每次都会回发并返回错误消息服务器。我认为 JQuery 1.6
破坏了验证插件我有一个使用 Jquery UI 对话框(从包含表单的部分视图加载)的 MVC 3 应用程序,以便通过 ajax 向服务器提交信息。我想在执行 ajax 发布之前在客户端触发对表单的验证。在 Firefox 和 IE9 上运行良好,在 IE7 和 IE8 中 form.validate() 总是返回 true。
这是附在我的提交按钮上的 js 代码:
var wizard = $("#wizard"); //div that holds the modal dialog
var myform = $("#wizard form");
var submitFunction = function (e) {
e.preventDefault(); //no postback
myform.validate();
if (myform.valid()) {
$(this).attr("disabled", "disabled");
submited = true;
$.post(
"SuperAdmin/CreateEditController",
$(this).serialize(),
function (data) {
if (data.Success) {
wizard.dialog('destroy');
}
else {
wizard.html(data.Html);
}
},
"json"
); //end json post
}
};
myform.submit(submitFunction);
我正在使用以下包括:
<script src="@Url.Content("~/Scripts/jquery-1.6.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
JQuery Validation 插件在 1.8.0 版本中使用 NuGet 升级,JQuery 库升级到 1.6。
更新: 我已经测试了使用脚手架默认模板生成的代码,它做同样的事情,没有客户端验证。也许 JQuery 1.6 与 Razor 脚手架模板不兼容??
【问题讨论】:
-
请同时发布您表单中的 HTML 代码。
-
如果这是验证函数的代码,
e定义在哪里?请发布完整的代码,因为问题预计是一个简单的错字,即不能很好地处理。 -
src="@Url.Content("~/Scripts/jquery-1.6.min.js")"对我来说似乎很奇怪——是一个新的 mvc3 东西吗? -
@Hogan JQuery 发布了一个 ew 和改进的版本,看这里stefanprodan.eu/2011/05/updat-mvc-projects-to-jquery-1-6
标签: jquery asp.net-mvc-3 jquery-validate