带有零到多个子jquery对话框的jquery对话框

时间:2016-06-30 17:15:55

标签: javascript jquery dialog

我有一个“父”jQuery对话框,当按下OK按钮时,该对话框可以跨越一对多的jQuery对话框。它也可能不会创建任何子对话框。 我还想在父母按下确定按钮时将用户带到确认页面。

我已经在子节点中使用了堆栈选项来使“堆叠”对话框起作用。我的问题是当在“父”上按下OK按钮时,代码继续执行,并且在用户有机会回答“子”对话框之前浏览器被带到确认页面。

在代码继续将用户带到父母的OK事件的确认页面之前,父母是否有任何方法可以等待子对话被回答?

我唯一的另一个想法是实际上有“孩子”OK按钮将用户带到确认页面放置可能会使代码复杂化,因为我需要代码让孩子知道它是最后一个孩子所以我可以将用户带到确认页面。

function getDeclineReason(appName) {
  $("#dvDeclineReason")
    .dialog({
      modal: true,
      stack: true,
      title: 'Decline Reason',

      open: function() {

        $('.ui-widget-content').css('background', 'white');
        $('.ui-widget-header').css('background', '#0072C6');
        $('.ui-widget-header').css('border', '1px solid #0072C6');
      },

      buttons: {
        OK: function() {

          $(this).dialog("close");
          return;

        },
        Cancel: function() {
          $(this).dialog("close");
          return;
        }
      },

      zIndex: 10000,
      autoOpen: true,
      width: 'auto',
      resizable: false,
      draggable: false,

    });

}



function reviewRequest() {
  getDeclineReason("Test");


  $("#dvReview")
    .dialog({
      modal: true,
      title: 'Review Request',


      open: function() {

        $('.ui-widget-content').css('background', 'white');
        $('.ui-widget-header').css('background', '#0072C6');
        $('.ui-widget-header').css('border', '1px solid #0072C6');
      },

      buttons: {
        OK: function() {


          var numChecked = 0;
          $('input[name="apps"]').each(function() {

            if (NWF$(this).is(':checked'))
              numChecked++;

          });


          if (numChecked == 0) {
            if (!confirm("You have not approved any applications.  If this was you intent then press OK to confirm the deny of all applications. Otherwise press cancel to try again."))
              return;
          }


          var totalApps = $('input[name="apps"]').length;
          var countApps = 0;

          $('input[name="apps"]').each(function() {

            var decision;

            if (NWF$(this).is(':checked'))
              decision = "Approved";
            else {
              decision = "Declined";
              getDeclineReason($(this).text());
            }


            switch (status) {
              case "Pend Mgr Review":
                updateFields["Title"] = "Manager Decision";
                break;

              case "Pend App Owner Review":
                updateFields["Title"] = "App Owner Decision";
                break;
            }

            countApps++;


            /*
																		
									updateFields["RequestNumber"] = requestNum;									
									updateFields["Application"] = $(this).text();   //  Get value from current check box item
									updateFields["AppStatusID"] = $(this).val();
									updateFields["Decision"] = decision;
									
									
									
									if (countApps == totalApps)
										updateFields["LastDecision"] = "Y";
									else
										updateFields["LastDecision"] = "N";	
									
									
									addListItem("Decision",updateFields);																		
									*/

          });



          $(this).dialog("close");
          //window.location.href = "/apps/TAI/SitePages/Decisioned.aspx";
          return;

        },
        Cancel: function() {
          $(this).dialog("close");
          return;
        }
      },


      zIndex: 10000,
      autoOpen: true,
      width: 'auto',
      resizable: false,
      draggable: false,

    });

}

1 个答案:

答案 0 :(得分:0)

您可以跟踪所有打开的对话框,每次用户单击“确定”关闭其中一个然后将一个减去计数并检查是否没有剩余的对话框。然后,您可以将用户重定向到其他站点。