twitter-bootstrap
ブートストラップ検証
サーチ…
備考
この検証手法は、フォーム内の入力に対してのみ使用できます。
失敗した
onSubmit()
検証で強調表示を表示するには、プロパティに少なくとも1つの検証要件が必要です。データ型(文字列以外)には非表示のデータ型要件があるため、明示的なデータ注釈は必要ありません。文字[MinLengthAttribute(0)]
はこれがありません。したがって、他のフィールドと共に検証チェックを強制するには、データ注釈[MinLengthAttribute(0)]
追加します。
ASP.NET MVCとデータアノテーションの使用
<appSettings>
Web.config(Viewsフォルダ内)に次を追加します。
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
BundleConfig.csにjqueryvalバンドルを追加します。
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jqueryval/jquery.validate*"));
検証が必要なすべてのページ(または_Layout.cshml)に以下を追加します。
<!-- Reference to the jqueryval bundle -->
@Scripts.Render("~/bundles/jqueryval")
<!-- jQuery to apply bootstrap validation classes and glyphicons to inputs -->
<script type="text/javascript">
$.validator.setDefaults({
highlight: function (element) {
$(element).closest('.form-group').removeClass('has-success has-feedback').addClass('has-error has-feedback'); // red highlighting
$(element).closest('.form-group').find('.form-control-feedback').removeClass('glyphicon-ok').addClass('glyphicon-remove'); // red cross glyphicon
},
unhighlight: function (element) {
$(element).closest('.form-group').removeClass('has-error has-feedback').addClass('has-success has-feedback'); // green highlighting
$(element).closest('.form-group').find('.form-control-feedback').removeClass('glyphicon-remove').addClass('glyphicon-ok'); // green tick glyphicon
}
});
</script>
モデル内の関連するフィールドにデータ注釈を追加します。
using System.ComponentModel.DataAnnotations;
[Required(ErrorMessage = "This field is required.")
ビューで、検証が必要な各入力に以下を追加します。
<!-- Validation messages -->
<div class="text-danger">@Html.ValidationMessageFor(m => m.SomeField)</div>
<!-- Bootstrap feedback span: -->
<span class="glyphicon form-control-feedback"></span>
サーバー側の検証を追加するには、関連するコントローラーのアクションに以下を追加します。
if (!ModelState.IsValid)
{
return View(model);
}
else
{
// continue with action
}
検証が必要な入力例
モデル:
[Required(ErrorMessage = "This field is required.")
[StringLength(maximumLength: 10, ErrorMessage = "This field must be 10 characters or less.")]
public string SomeRequiredField { get; set; }
表示:
<div class="form-group has-feedback">
<div class="col-md-4">
@Html.LabelFor(m => m.SomeRequiredField, new { @class = "control-label" })
</div>
<div class="col-md-8">
@Html.TextBoxFor(m => m.SomeRequiredField, new { @class = "form-control" })
<div class="text-danger">@Html.ValidationMessageFor(m => m.SomeRequiredField)</div>
<span class="glyphicon form-control-feedback"></span>
</div>
</div>
オプション
次のjQueryを追加して、ぼかしと入力時の入力を検証します。
$('input').on('blur', function () {
$(this).valid();
});
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow