我无法让引导模式和 asp.net mvc 验证开始一起工作。我有一个复杂的表单,在引导模式中显示了一些验证。不幸的是,当我点击提交按钮时,验证根本不起作用。
该表单使用标准的 asp.net mvc 验证。下面有一部分只是为了了解它是如何构建的:
@using (Html.BuildForm().AddClass("form-horizontal").Id("contact-add-popup").EncType(FormEncType.MultipartData).Begin()) {
@Html.AntiForgeryToken()
@Html.Partial("_Alerts")
<div class="control-group">
<div class="control-group company-field">
@Html.BuildLabelFor(m => m.Name).AddClass("control-label")
<div class="controls">
@Html.BuildTextBoxFor(m => m.Name).AddClass("input-xxlarge")
@Html.ValidationMessageFor(m => m.Name)
</div>
</div>
(...)
这是我的模态:
<div id="createContactModal" class="modal hide fade modal-contact" tabindex="-1" role="dialog" aria-labelledby="createContactModalLabel" aria-hidden="true" data-backdrop="static">
<div class="modal-header">
<h4 class="modal-label" id="createContactModalLabel">Add contact</h4>
</div>
<div class="modal-body">
@Html.Partial("_CreateContact", new ContactCreateModel())
</div>
<div class="modal-footer">
<a href="javascript:$('#contact-add-popup').submit();" class="btn btn-primary">Zapisz</a>
<button class="btn" data-dismiss="modal" aria-hidden="true">Zamknij</button>
</div>
还有一些我希望验证工作的javascript:
$('#createContactModal').on('shown', function () {
$("#contact-add-popup").removeData("validator");
$("#contact-add-popup").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("#contact-add-popup");
});
$('#contact-add-popup').on('submit', function(e){
e.preventDefault();
$.validator.unobtrusive.parse($("#contact-add-popup"));
if ($('#contact-add-popup').valid()){
alert('AJAX');
}
});
if ($('#contact-add-popup').valid()) 行总是返回 true。我怎样才能让模式和验证工作?