New*_*ent 4 asp.net validation jquery errorplacement asp.net-mvc-3
我试图通过Microsoft提供的不显眼验证来处理ASP.NET MVC 3项目中的errorPlacement JQuery Validate插件.我永远无法点击errorPlacement函数,我不确定我做错了什么.我在下面提供模型/视图/控制器的代码.请让我知道我做错了什么?
视图
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<Project.Models.SampleModel>" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Index</title>
</head>
<body>
<script src="<%: Url.Content("~/Scripts/jquery-1.4.4.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.min.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function ()
{
$("#form").validate(
{
errorPlacement: function (error, element)
{
alert("Code to define customer error");
}
})
});
</script>
<% using (Html.BeginForm("Index", "Sample", FormMethod.Post, new { id = "form" }))
{ %>
<%: Html.ValidationSummary(false) %>
<fieldset>
<legend>NewModel</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Name) %>
</div>
<div class="editor-field">
<%: Html.EditorFor(model => model.Name) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Age) %>
</div>
<div class="editor-field">
<%: Html.EditorFor(model => model.Age) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Address) %>
</div>
<div class="editor-field">
<%: Html.EditorFor(model => model.Address) %>
</div>
<br />
<p>
<input type="submit" id="submit" value="Submit" />
</p>
</fieldset>
<% } %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
模型
public class SampleModel
{
[Required]
[DataType(DataType.Text)]
[DisplayName("Name")]
public string Name { get; set; }
[Required]
[DataType(DataType.Text)]
[DisplayName("Age")]
public string Age { get; set; }
[Required]
[DataType(DataType.MultilineText)]
[DisplayName("Address")]
public string Address { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
调节器
public class SampleController : Controller
{
//
// GET: /New/
public ActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里发现了一篇解决这个问题的文章.
简而言之:
var valOpts = $.data($('form')[0], 'validator').settings; //we've got jQuery.validation settings woohoo!
var baseError = valOpts.errorPlacement;
valOpts.errorPlacement = function (error, input) {
input.attr('title', error.text()); //error is the $('<span>...</span>')
baseError(error, input); //removing this breaks form validation
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6428 次 |
| 最近记录: |