将变量传递到对话框按钮

时间:2018-12-25 23:37:46

标签: jquery button dialog

我在对话框中添加了一个按钮。单击后,它将从对话框中获取结果并将其显示在主页上。可能有许多元素需要完成此操作,因此我试图制作一个对所有元素都适用的功能。但是为了做到这一点,我需要将名称传递给该函数,并且我不知道如何在不使用全局变量的情况下做到这一点。

例如,以下代码显示了正在调用的对话框。 “哪个”参数可以是任意数量的东西。在GetResults函数中,无论使用哪个参数,都将抓取结果。该代码按原样工作正常,但我尝试不使用全局变量。这可能吗?

    <script>
    var gwhich = '';
    function ShowTheDialog(which) {
      var dWidth = 200; 
      var dHeight = 350; 
      var name = '';
      var thisurl = '';
      switch (which) {
        //set vars here
      }
      gwhich = which;

      $.ajax({
        url:thisurl,
        success: function(data) {
        $("#show-dialog").html(data).dialog({modal:true}).dialog({options: 
          open, 
          title:name, 
          width:dWidth, 
          height:dHeight,

          buttons: { 
             "Save": GetResults,
             "Cancel": function() {
                text:'Cancel',
                 $(this).dialog("close");
             }      
          },
         });
        }
      });
    } 
    function GetResults(){ 
      which = gwhich;
      var selectedItem = $("#retval-selected").text();
      var apply_to = $("#retval-apply-to").text();
      $("#show-selected-"+which).val(selectedItem);
      $("#show-apply-to-"+which).val(apply_to);
      $("#show-dialog").dialog( "close" );
    }
    </script>

1 个答案:

答案 0 :(得分:1)

您可以将which参数传递给GetResults();

     buttons: { 
             "Save": function() {
                GetResults(which);
             },
             "Cancel": function() {
                text:'Cancel',
                 $(this).dialog("close");
             }      
          },


   function GetResults(which){ 
      var selectedItem = $("#retval-selected").text();
      var apply_to = $("#retval-apply-to").text();
      $("#show-selected-"+which).val(selectedItem);
      $("#show-apply-to-"+which).val(apply_to);
      $("#show-dialog").dialog( "close" );
    }