2017-09-16 25 views
0

我有一个索引页面,其中显示了表模型的所有元素。模式窗口 - 确定通过JS调用它的按钮

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

在相同的索引页面我有一个Create按钮用于添加新的Machines

下面是结构:

enter image description here

用于两种情况下(CreateEdit或)的模态窗口是相同的。

我需要填充模式窗口内的下拉列表,取决于哪个按钮被击中。如果它是一个新的Machine,添加一个在Javascript上定义的特定值,在其他情况下,什么也不做。

代码:

创建按钮:它有它自己的ID:modalbutton

<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> 

的JavaScript:

<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按钮时。

如果是这种情况,我将使用items变量的值填充属性TypeID之后,,将wasclicked变量设置为

为什么?因为,当Edit按钮被hitted和模式弹出ED起来:

$('#modal-action-machine').on('shown.bs.modal', function() { 

鉴于wasclicked是零,没有什么是supossed发生。

然而,即使我打CreateEditwasclicked始终是1,我不能区分这样的场景。

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

回答

0

试试这个(插入文档后。准备功能):

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

+0

感谢您的回复,但是我得到的结论是'ifclicked'内部的if语句每次都是未定义的,altought是一个全局变量 –

+0

更新'var wasclicked'到'var wasclicked = 0'和'if(wasclicked = 1)'如果(被点击=== 1)''' –

相关问题