我想在一個簡單的MVC 4應用程序上使用jQuery驗證插件 - 我在MVC 3中完成了一些沒有問題的工作,但是我無法工作在所有。Jquery MVC 4客戶端驗證不起作用
我想在下列情況下啓動驗證:
1 - 我的控件失去焦點。
2-對錶單提交。
任何想法,我已經錯過了將不勝感激!
在_Layout.cshtml腳本引用
<!-- language-all: lang-html -->
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title - AWC Web Console</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
<script src="@Url.Content("~/Scripts/jquery-1.7.1.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>
</head>
在文件準備功能應用
<script type="text/javascript">
$(document).ready(function() {
alert("doc ready");
// JQuery client validation
$("#prodIdFilterForm").validate(
{
onsubmit: true,
rules: {
productId_str: {required: true, minlength: 10, number:true }
},
messages: { productId_str: "product Id must be entered" },
// Force validation when control looses focus
onfocusout: function (element) {
alert("onfocusout"); // not entering this block !
$("#productId_str").removeAttr('style');
$("#productId_str").valid(); // fire validation
$(element).valid();
}
,
showErrors: function (errorMap, errorList)
{
if (errorList.length > 0)
{
for (var i = 0; i < errorList.length; i++)
{
$("#" + errorList[i].element.id).css({ 'background-color': '#FFDFDF' });
}
}
}
}
);
}); // DocReady
</script>
身體組成標記Index.cshtml標記與驗證JS
@{
ViewBag.Title = "Messages";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm("SelectProduct", "WMSMessages", Model, FormMethod.Post, new { @id = "prodIdFilterForm"}))
{
<fieldset class="filtering">
<legend>SelectExtensions Product</legend>
<div>
<b>Product Id:</b>
@Html.TextBoxFor(model => model.productId_str, new { @id ="productId_str"} )
<div class="filterSubmitBox">
<input type="submit" value="Show Messages" />
</div>
</div>
</fieldset>
}
順便說一句 - 我知道docready 標記 - 我不習慣在我的帖子中格式化代碼(新手!) – andrewe 2013-03-01 09:24:07
我不敢相信 - 我刪除了_Layout.cshtml中引用的第三個腳本: 驗證開始工作 - 任何人都可以讓我理解爲什麼? – andrewe 2013-03-01 09:37:17
查看我的回答獲取詳細解釋 – 2013-03-01 10:12:50