我有一个索引页面,显示名为Machine
的模型的所有元素的表。
每一行都有一个弹出模态窗口的按钮,以便Edit
此模型的属性。
在同一个索引页面中,我有一个用于添加新Create
的{{1}}按钮。
这是结构:
两种情况(Machines
或Create
)使用的模态窗口都是相同的。
我需要在模态窗口中填充一个下拉列表,具体取决于按下哪个按钮。如果它是新的Edit
,请添加在Javascript上定义的特定值,在其他情况下,不执行任何操作。
代码:
创建按钮:它有自己的ID:modalbutton
Machine
Javascript:
<div class="btn-group" id="modalbutton">
<a id = "createEditCustomerModal" data-toggle="modal" asp-action="CreateEdit" data-target="#modal-action-machine"
class="btn btn-default">
<i class="glyphicon glyphicon-plus"></i> Ingresar
</a>
</div>
问题:
想法是在点击<script type="text/javascript">
$(document).ready(function () {
document.getElementById("modalbutton").onclick = function () {
var wasclicked = 1;
};
$('#modal-action-machine').on('shown.bs.modal', function () {
if (wascliked = 1) {
var items = "<option value='0'>-- Seleccione Modelo --</option>";
$('#TypeID').html(items);
}
var wasclicked = 0;
});
按钮时将变量(wasclicked
)设置为1。
如果是这种情况,我会使用Create
变量的值填充属性TypeID
。 之后,将items
变量设置为零。
为什么?因为当wasclicked
按钮被点击并弹出模式时:
Edit
鉴于$('#modal-action-machine').on('shown.bs.modal', function () {
为零,没有任何事情发生。
但是,即使我点击wasclicked
或Create
,Edit
也始终为1,我无法区分这样的情景。
我该如何解决这个问题?为什么wasclicked
总是1?提前谢谢。
答案 0 :(得分:0)
试试这个(在doc.ready函数后插入):
var wasclicked = 0;
document.getElementById("modalbutton").onclick = function () {
wasclicked = 1;
};
$('#modal-action-machine').on('shown.bs.modal', function () {
if (wasclicked === 1) {
var items = "<option value='0'>-- Seleccione Modelo --</option>";
$('#TypeID').html(items);
}
wasclicked = 0;
});
您在代码中的多个位置使用相同的变量名称(wasclicked
)但是给定了函数创建的封装,它实际上并非在所有位置都是相同的变量。此代码创建一个超出函数范围的变量,因此两者都可以访问。
您的代码中也有拼写错误:
if (wascliked = 1)
应为wasclicked
。