【问题标题】:Styling Data Validation Errors with Bootstrap使用 Bootstrap 设置数据验证错误的样式
【发布时间】:2016-01-19 01:07:25
【问题描述】:

我正在开发一个 ASP.NET MVC 4 项目。我想使用 Bootstrap 3.0 在我的登录页面上设置数据验证错误的样式。当我调试页面并给出数据验证错误时,此代码在我的登录表单源中消失:

 <form action="/Account/Login" class="col-md-4 col-md-offset-4 form-horizontal well" method="post"><input name="__RequestVerificationToken" type="hidden" value="Zbg4kEVwyQf87IWj_L4alhiHBIpoWRCJ9mRWXF6syGH4ehg9idjJCqRrQTMGjONnywMGJhMFmGCQWWvBbMdmGFSUPqXpx6XaS4YfpnbFm8U1" /><div class="validation-summary-errors"><ul><li>The user name or password provided is incorrect.</li>
</ul></div>    <div class="form-group control-group">
   <div class="col-md-6 col-md-offset-3">
                <input class="input-validation-error form-control" data-val="true" data-val-required="User name alanı gereklidir." id="UserName" name="UserName" placeholder="Kullanıcı Adı" type="text" value="" />
                <span class="field-validation-error" data-valmsg-for="UserName" data-valmsg-replace="true">User name alanı gereklidir.</span>
       </div>
        </div>
    <div class="form-group">
    <div class="col-md-6 col-md-offset-3">
                <input class="input-validation-error form-control" data-val="true" data-val-required="Password alanı gereklidir." id="Password" name="Password" placeholder="Şifre" type="password" />
                <span class="field-validation-error" data-valmsg-for="Password" data-valmsg-replace="true">Password alanı gereklidir.</span>
        </div>
    </div>
    <div class="form-group">
    <div class="col-md-4 col-md-offset-4">
        <button class="btn btn-default" type="submit">Giriş Yap</button>
        </div>
    </div>
</form>

如何使用 Bootstrap 3 设置这些错误的样式,例如标签的“for=inputError”属性?

【问题讨论】:

标签: asp.net-mvc-4 twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

正如Bootstrap's docs 所示,您需要将has-error 类应用于包含输入并具有form-group 类的div:

<div class="form-group has-error">
    ...
</div>

根据条件的结果为要检查的每个属性编写条件并应用类has-error 是一件非常难看的事情,尽管您可以这样做:

<div class="form-group @(Html.ViewData.ModelState.IsValidField(Html.IdFor(x => x.UserName)) ? null : "has-error" )">

这负责服务器端验证。但是,您还需要考虑客户端验证。为此,您需要编写一些 jQuery 来检查 field-validation-error 类的存在,并根据结果应用 has-error 类。

您可以自己完成所有操作,但我建议您查看TwitterBootstrapMVC,它会自动为您完成所有这些操作。你只需要写:

@Html.Bootstrap().FormGroup().TextBoxFor(m => m.UserName)

免责声明:我是 TwitterBootstrapMVC 的作者。在 Bootstrap 2 中使用它是免费的。对于 Bootstrap 3,它需要付费许可证。

【讨论】:

    猜你喜欢
    • 2012-07-04
    • 2019-04-08
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 2018-09-22
    • 1970-01-01
    相关资源
    最近更新 更多