我有两个按钮调用相同的模态,我设置了data-button
属性来检测调用模态的按钮。
<button type="button" id="another" data-toggle="modal" data-target="#modal" class="btn btn-warning" data-button='another'>Add another</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal" data-button="lab">Add lab</button>
我想要做的是根据按钮调用者更改模态中的标签。我这样做了:
<script>
$('#modal').on('show.bs.modal', function(e) {
var $trigger = $(e.relatedTarget);
$('#vv_type').val($trigger.data('button'));
v_type = $trigger.data('button');
if (v_type == 'lab') {
$('#ModalLabel').html('changed label');
$("label[for='id_date_of_label']").html('label inside modal changed');
}
})
</script>
只有在第一次显示模态时它才能正常工作,之后每当我点击按钮时,总会显示相同的更改标签,这是$('#modal').on('show.bs.modal', function (e) {
有没有办法声明v_type
变量并将其发送到document.ready()
函数,这样我确保每次单击调用模态的按钮时脚本都会运行(不仅是第一次?)
答案 0 :(得分:0)
我已经通过从模态中的隐藏输入data-button
获取vv_type
来解决这个问题(我的模态已经有一个表单)并且我添加了这个每次模态运行时运行的脚本所示:
<script>
$(document).ready(function () {
$('.modal').on('show.bs.modal', function (e) {
if ($('#vv_type').val() == 'lab') {
$('#ModalLabel').html('changed label');
$("label[for='id_date_of_label']").html('label inside modal changed');
}
else {
$('#ModalLabel').html('origin label');
$("label[for='id_date_of_label']").html('label inside modal origin');
}
});
});
</script>
答案 1 :(得分:0)
您的原始代码仍适用于我。缺少的唯一部分是else
的{{1}}条件。我可以看到每个按钮上的标签更改。
if (v_type == 'lab') {
&#13;
$('#myModal').on('show.bs.modal', function (e) {
var $trigger = $(e.relatedTarget);
//$('#vv_type').val($trigger.data('button'));
v_type = $trigger.data('button');
if (v_type == 'lab') {
$('#buttonText').html(v_type);
//$("label[for='id_date_of_label']").html('label inside modal changed');
}
else
{
$('#buttonText').html(v_type);
//$("label[for='id_date_of_label']").html('label inside modal changed');
}
})
&#13;