模态窗口 - 识别通过JS调用它的按钮

时间:2017-09-16 00:45:18

标签: javascript jquery asp.net

我有一个索引页面,显示名为Machine的模型的所有元素的

每一行都有一个弹出模态窗口的按钮,以便Edit此模型的属性。

在同一个索引页面中,我有一个用于添加新Create的{​​{1}}按钮。

这是结构:

enter image description here

两种情况(MachinesCreate)使用的模态窗口都是相同的。

我需要在模态窗口中填充一个下拉列表,具体取决于按下哪个按钮。如果它是新的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 () { 为零,没有任何事情发生。

但是,即使我点击wasclickedCreateEdit也始终为1,我无法区分这样的情景。

我该如何解决这个问题?为什么wasclicked总是1?提前谢谢。

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