asp.net-mvc-3 – 在MVC3中扩展不引人注目的javascript以在div客户端添加样式的最佳方法
|
我使用html5 / Razor / MVC3利用Bootstrap模板从Twitter。我想有表面验证,看起来像光滑,他们已经记录( http://twitter.github.com/bootstrap/#forms)。所以,如果我们看看如何标准的锅炉板MVC3帐户注册,标记将看起来像: @using (Html.BeginForm("Register","Account",FormMethod.Post,new { @class="form-stacked" })) {
@Html.ValidationSummary(true,"Snap! Something went wrong")
<div>
<fieldset>
<legend>Account Information</legend>
<div class="clearfix error">
@Html.LabelFor(m => m.UserName)
<div class="input">
@Html.TextBoxFor(m => m.UserName)
<span class="help-inline">@Html.ValidationMessageFor(m => m.UserName)</span>
</div>
</div>
<div class="clearfix">
@Html.LabelFor(m => m.Email)
<div class="input">
@Html.TextBoxFor(m => m.Email)
<span class="help-inline">@Html.ValidationMessageFor(m => m.Email)</span>
</div>
</div>
<div class="clearfix">
@Html.LabelFor(m => m.Password)
<div class="input">
@Html.PasswordFor(m => m.Password)
<span class="help-inline">@Html.ValidationMessageFor(m => m.Password)</span>
</div>
</div>
<div class="clearfix">
@Html.LabelFor(m => m.ConfirmPassword)
<div class="input">
@Html.PasswordFor(m => m.ConfirmPassword)
<span class="help-inline">@Html.ValidationMessageFor(m => m.ConfirmPassword)</span>
</div>
</div>
</fieldset>
<div class="actions">
<button class="btn large primary" type="submit">Register</button>
</div>
</div>
我想做的是让容器div注入“错误”类,就像我在第一个输入硬编码。 (因此在进入页面时,div将有一个“clearfix”类,但如果该输入块验证失败,则会将其标记为“clearfix错误”)。我想我将不得不更新div块以包括某种类型的ID,并可能添加一个新的数据属性到ValidationMessage。我没有扩展ValidationMessageFor帮助器的问题。我只是不是100%肯定的方法应该是扩展的库在那里。任何建议如何解决这个问题? TIA。 更新: 我认为这种方法是合理的: <div id="UserNameContainer" class="clearfix error">
@Html.LabelFor(m => m.UserName)
<div class="input">
@Html.TextBoxFor(m => m.UserName)
<span class="help-inline">@Html.ValidationMessageFor(m => m.UserName,null,new { @data_container = "UserNameContainer" })</span>
</div>
</div>
通过使用数据容器名称装饰我的验证消息,我可以定位容器div。现在我只需要弄清楚如何拦截验证消息。 解决方法$ .validator.setDefaults方法通过Bootstrap从Twitter解决了这个问题。我使用jquery.validate.js和jquery.validate.unobtrusive.js。由于对DOM准备进行不显眼的验证扫描您的文档并为其遇到的每个表单缓存不显眼的验证选项,因此需要在文档扫描发生之前调用$ .validator.setDefaults方法。 // setup defaults for $.validator outside domReady handler
$.validator.setDefaults({
highlight: function (element) {
$(element).closest(".clearfix").addClass("error");
},unhighlight: function (element) {
$(element).closest(".clearfix").removeClass("error");
}
});
$(document).ready(function() {
// do other stuff
}); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 什么是适当的时间为ViewData,Vie
- asp.net – 如何尊重“从无Cookie域中提供静态内
- ASP.NET和底层连接已关闭:无法为SSL / TLS安全通
- asp.net – 如何使用在web.config文件
- asp.net – Web部署项目的更好替代品
- asp.net-core – 找不到Swashbuckle.AspNetCore
- asp.net-mvc – ASP.net MVC RTM测试命名约定
- asp.net – FormsAuthentication:是否安全?
- asp.net – Xdocument不打印声明
- asp.net-mvc – ViewModel中的MVC3 RouteUrl
