【发布时间】:2015-07-21 12:21:29
【问题描述】:
那里!
在.cshtml中,我有以下 div em>元素,该元素可在选择某个无线电选项时显示模态对话框:
<div id="modalDesembolsos" class="modal modaldesembolso" role="dialog" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Informe dos valores anuais de desembolso</h4>
</div>
<div class="modal-body">
<div class="panel panel-info">
<div class="panel-body">
<div class="panel">
<table class="table table-bordered">
<thead>
<tr>
<th class="text-center">Ano</th>
<th class="text-right">Valor</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
@Html.DropDownListFor(model => model.Anos, new SelectList(Model.Anos), htmlAttributes: new { @class = "form-control text-right" })
</td>
<td class="text-right">
<input type="number" id="valorAno" name="valorAno" class="dinheiro form-control" />
</td>
<th class="text-center"><input type="button" id="btnIncluiValorAnual" name="btnIncluiValorAnual" class="btn btn-success btn-sm" value="+" title="Inclui ano/valor" /></th>
</tr>
</tbody>
</table>
</div>
<table id="tblRateio" class="table table-bordered table-striped">
<thead>
<tr>
<th class="text-center">Ano</th>
<th class="text-center">Valor</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<div class="panel-footer">
<h4 class="acumulador text-right"></h4>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary btnok" data-dissmiss="modal"> Ok </button>
<button type="button" class="btn btn-default btncancela" data-dismiss="modal" aria-hidden="true" aria-label="Fechar"> Cancelar </button>
</div>
</div>
</div>
</div>
当用户单击 Ok 按钮时,将运行以下 jQuery 函数:
$('.btnok').click(function () {
var acumulado = 0;
$('#tblRateio > tbody > tr').each(function () {
var anoGasto = $(this).find('.ano').text();
var valor = parseFloat($(this).find(".valor").text().replace(/\./g, "").replace(",", "."));
var desembolso = {
Ano: anoGasto,
Valor: valor
};
acumulado += valor;
lstDesembolsos.push(desembolso);
});
if ($('#Valor').maskMoney('unmasked')[0] > acumulado) {
lstDesembolsos = [];
mostraMensagem("Inclusão de Item", "aviso", "A soma dos valores informados para desembolso é menor que o valor do item!");
return false;
}
fecharModal();
});
对于表 tblRateio 的每一行,它对具有类 valor 的列的值求和。然后将这个累积值与另一个元素值进行比较。如果此比较失败,我想显示一条警报消息(但不是来自 js 的丑陋消息)。我希望它充当模式警报。这就是为什么我编写了具有以下代码的函数 mostraMensagem:
function mostraMensagem(titulo, tipo, msg) {
var classe = "";
$('.modal-title').html(titulo);
switch (tipo) {
case "erro":
classe = "alert-danger";
break;
case "sucesso":
classe = "alert-success";
break;
case "info":
classe = "alert-info";
break;
case "aviso":
classe = "alert-warning";
break;
}
$('.corpomensagem').addClass(classe);
$('.corpomensagem').html(msg);
$('#mensagens').show();
}
该模式的标记如下:
<div class="modal " id="mensagens" role="alert" tabindex="-2">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close fecharmensagens" data-dissmiss="modal" aria-hidden="true" aria-label="Fechar">×</button>
<h4 class="modal-title"></h4>
</div>
<div class="modal-body">
<p class="corpomensagem alert"></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary fecharmensagens" data-dissmiss="modal"> Ok </button>
</div>
</div>
</div>
</div>
因此,正在发生的情况是,此模态警报消息是在模态对话框“后面”加载的。只有当模态对话框关闭时,用户才能看到模态警报消息。当然这不是目标。
我应该怎么做才能实现我的目标?
感谢您的帮助。
最好的问候。 保罗·里卡多·费雷拉
【问题讨论】:
-
最简单的方法,您可以在显示警报之前关闭模式。
-
@greenhoorn,这种行为不是最适合这种情况的行为,因为用户应该在模式对话框中插入更多值。谢谢。
-
你的意思是像this这样的东西吗?看看可堆叠的。
-
@greenhoorn,可能是。有点。我试试看。
-
@greenhoorn,我看了看,发现有一点不同。用户单击具有特定目的的按钮(具有此属性:data-toggle="modal")以打开另一个模式。那不是我的情况。当用户在我的代码中单击 Ok 时,将显示或不显示模式。谢谢。
标签: jquery html twitter-bootstrap