jQuery - 等到确认弹出返回值

时间:2017-12-13 14:28:08

标签: javascript jquery popup

所以我有一个记录表,其中每个人都有一个删除按钮。我想添加一个确认弹出窗口,单击按钮时会显示该弹出窗口。

 var $confirmDialog = $('<div></div>')
    .html('This record will be removed.')
    .dialog({
    autoOpen: false,
    title: 'Remove confirtmation',
    buttons: {
      "OK": function () {
        $(this).dialog("close");
        return true;
      },
      "Cancel": function () {
        $(this).dialog("close");
        return false;
      }
    }
  });

我的删除按钮事件:

$(".removeButton").on("click", function(){
    if($confirmDialog.dialog('open')){
       var name =  $(this).siblings(".someClassForNameHolder").text();
       var urlPath = $("#hiddenForUrl").val();
       Application.postRecord(name, "Remove", urlPath); 
    }
});

顺便说一下,我有以下几点:

1)我无法为表格中的每条记录提供唯一的ID,因此我必须将我的数据集合(name变量)保留在removeButton事件中(以便能够使用this.sibling ......)。

2)我希望我的脚本等到$confirmDialog返回值,然后才继续执行代码。

1 个答案:

答案 0 :(得分:0)

只需将urlPath分配给全局变量,然后执行POST处理程序中的OK

var nameToRemove, urlPathToRemove;

var $confirmDialog = $('<div></div>')
    .html('This record will be removed.')
    .dialog({
    autoOpen: false,
    title: 'Remove confirtmation',
    buttons: {
      "OK": function () {
        $(this).dialog("close");
        Application.postRecord(nameToRemove, "Remove", urlPathToRemove); 
      },
      "Cancel": function () {
        $(this).dialog("close");
        return false;
      }
    }
  });

  $(".removeButton").on("click", function(){
    if($confirmDialog.dialog('open')){
       nameToRemove =  $(this).siblings(".someClassForNameHolder").text();
       urlPathToRemove= $("#hiddenForUrl").val();
    }
  });