在我的 MVC4 应用程序中,我正在尝试为表单中的某些文本框创建客户端验证器。该表单包含在 Register.cshtml 视图中(当我使用 formsauthentication 项目创建新的 MVC4 时,VS2010 会自动创建此视图)。
表单已经在提交按钮上实现了验证,但我想要一个验证器,一旦焦点离开文本框就起作用 - 应该在文本框旁边显示一个内联错误,带有红色字体。如果验证正常,它应该再次显示消息“ok”。
问题: .js 验证器不起作用。萤火虫 说:
$document 未定义。$document.ready(
我还尝试了 alert(),如果我将它放在 document.ready 函数之外,它就会弹出。在里面时,它不会弹出。registerForm.js 的代码:
$document.ready(
function ()
{
$('#registration form').validate
(
{
rules:
{
UserName: { required: true }
},
success: function (label)
{
label.Text('OK!').addClass('IsInputValid');
}
}
)
}
);
添加此 javascript 的包如下:
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/registerForm.js",
"~/Scripts/jquery.validate*"));
最后,观点:
<div id="registration">
@using (Html.BeginForm()) {
@Html.ValidationSummary()
<fieldset>
<legend>Registration Form</legend>
<ol>
<li>
@Html.LabelFor(m => m.UserName)
@Html.TextBoxFor(m => m.UserName)
</li>
<li>
@Html.LabelFor(m => m.Email)
@Html.TextBoxFor(m => m.Email)
</li>
<li>
@Html.LabelFor(m => m.Password)
@Html.PasswordFor(m => m.Password)
</li>
<li>
@Html.LabelFor(m => m.ConfirmPassword)
@Html.PasswordFor(m => m.ConfirmPassword)
</li>
</ol>
<input type="submit" value="Register" />
</fieldset>
}
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
什么可以阻止 js 工作?我已经花了大约 5 个小时试图弄清楚这一点。如果您有任何建议,请告诉我,
问候,