【发布时间】:2014-03-27 15:27:25
【问题描述】:
我有一个表单内的引导模式对话框。表单是通过 AJAX 提交的。我希望submit 按钮也关闭模态(否则我最终会保留模态覆盖)
模态代码是:
@using (Ajax.BeginForm("SaveConfiguredReport", new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "report-details", OnBegin="preProcessing" }))
{
<div class="modal fade" id="add-filter-dialog" tabindex="-1" role="dialog" aria-labelledby="add-filter-dialog" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4>Add a Filter</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<p>Adding filters allows you to sort what data will be included in the report. These filters will be default for all ongoing usage of this report.</p>
<div id="field-templates"></div>
<input type="hidden" id="field-template-id" name="FieldTemplateID" />
@Html.DropDownList("OperatorID", Model.Operators.Select(x => new SelectListItem { Text = x.Name, Value = x.OperatorID.ToString() }))
<input type="text" name="FilterValue" class="typeahead" id="filter-value" />
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success" data-dismiss="modal" name="Command" value="Add">Add Filter</button>
</div>
</div>
</div>
</div>
}
<!-- other code -->
<script>
function preProcessing() {
$('.modal').each(function (index, element) {
$(element).modal('hide');
});
}
</script>
如果我在提交按钮上保留data-dismiss 属性,它将关闭表单但不提交。如果我删除它,表单将被提交但不会被驳回。有人对此有任何运气吗?
编辑
我在 AJAX 调用中添加了一个预处理器,以便在开始时隐藏所有表单。最后隐藏它们不起作用,因为表单正在替换模式而不是覆盖。在提出适当的解决方案之前,这是一种解决方法
【问题讨论】:
-
您找到更好的解决方案了吗?
标签: asp.net-mvc html twitter-bootstrap razor