2014-08-27 139 views
2

任何人都知道如何解決這個問題。我有這段代碼在刪除文件時顯示bootbox.confirm,但它不起作用。Bootbox確認不起作用

$('#fileupload').fileupload({ 
destroy: function (e, data) { 
    var that = $(this).data('fileupload'); 
     if (bootbox.confirm("Delete this file(s) ?") == true) { 
     if (data.url) { 
      $.ajax(data) 
       .success(function() { 
         $(this).fadeOut(function() { 
         $(this).remove(); 
        }); 
       }); 
     } else { 
      data.context.fadeOut(function() { 
      $(this).remove(); 
      }); 
     } 
    } 
} 
}); 
+1

'bootbox.confirm'是一個異步方法 - 你需要使用一個回調函數來處理它的結果。 – CBroe 2014-08-27 14:46:16

+0

您是否檢查了控制檯的錯誤消息? – Cfreak 2014-08-27 14:46:18

+0

感謝您的幫助 – 2014-08-27 16:09:31

回答

1

的Bootbox方法不起作用像本地方法:

bootbox.confirm("Delete this file(s) ?", function(answer) { 
    if (!answer) return; // User said "no" 

    if (data.url) { 
     $.ajax(data) 
      .success(function() { 
        $(this).fadeOut(function() { 
        $(this).remove(); 
       }); 
      }); 
    } else { 
     data.context.fadeOut(function() { 
     $(this).remove(); 
     }); 
    } 
} 
+0

謝謝,我使用了CemOzer代碼。 – 2014-08-27 16:08:29

1

你必須以確定的確認和提示對話框用戶反應使用的回調。 這是確認的簽名:bootbox.confirm(message, callback)

您的代碼應該是這樣的

$('#fileupload').fileupload({ 
destroy: function (e, data) { 
    var that = $(this).data('fileupload'); 
     bootbox.confirm("Delete this file(s) ?", function(result) { 
     if(result == true){ 
      if (data.url) { 
       $.ajax(data) 
        .success(function() { 
          $(this).fadeOut(function() { 
          $(this).remove(); 
         }); 
        }); 
      } else { 
       data.context.fadeOut(function() { 
       $(this).remove(); 
       }); 
      } 
     } 
    }); 
} 
}); 
+0

啊,我幾乎都很討厭它,非常感謝你的幫助。 – 2014-08-27 16:07:47

+0

但有一件事,如果我檢查了很多文件,並在bootbox中單擊確定。確認確認將彈出每個文件。有沒有辦法刪除多個文件只需一個確定的點擊?謝謝。 – 2014-08-27 16:30:05

+0

如果沒有完整的代碼或者你的設計,我不能說太多。您可以使用複選框查看文件,然後在確認後刪除已選中的文件。 – 2014-08-28 06:10:49