2013-05-26 52 views
7

Tôi đang cố gắng sử dụng này:Bootbox gọi lại không hoạt động đúng

$('#delete').live('click',function(){ 
       var result; 
       bootbox.confirm("Are you sure?", function(response){ 
         result=response; 
       }); 
       alert(result); 
       return result; 
      }); 

Nhưng khi nút được click:

Alert hiển thị lần đầu và chỉ sau đó chương trình bootbox xác nhận hộp thoại.

Tôi muốn trả lời câu trả lời, nhưng nếu tôi làm điều đó từ trong cuộc gọi lại thì nó không hoạt động vì nó trả về phản hồi từ gọi lại nhưng không trả về $ ('# devicedelete'). ('Click', function() {});

Btw Tôi đang cố gắng gửi biểu mẫu dựa trên phản hồi. Vì vậy, nếu tôi trả lại biểu mẫu 'true' sẽ được gửi, nếu không trả lại 'false', biểu mẫu sẽ không được gửi.

Vui lòng kiểm tra này: http://pastebin.com/9H3mxE9Y

Tôi có một bảng lớn với hộp kiểm cho mỗi hàng, người sử dụng chọn hộp kiểm và bấm vào bất kỳ nút 'xóa', 'bản sao' vv và hình thức phải được nộp.

Cảm ơn

Trả lời

4

Hộp thoại không đồng bộ, bạn có thể ngăn tác vụ mặc định ngay, sau đó gọi trình nếu người dùng chấp nhận. Dưới đây là một ví dụ: http://jsfiddle.net/ty5Wc/3/

$('#delete').on('click', function (e) { 
    e.preventDefault(); 
    bootbox.confirm("Are you sure?", function (response) {   
     if(response) { 
      $('#form').submit(); 
     } 
    }); 
}); 
$('#form').submit(function() { 
    //do your validation or whatever you need to do before submit 
}); 

Edit: Sau khi nói chuyện nhiều hơn với OP, ông cũng muốn vượt qua giá trị nút trong chuỗi truy vấn, giải pháp của tôi cho rằng là ở đây: http://jsfiddle.net/ty5Wc/5/

$('#delete').on('click', function (e, confirmed) { 
    if (!confirmed) { 
     e.preventDefault(); 
     bootbox.confirm("Are you sure?", function (response) { 
      if (response) { 
       $('#delete').trigger('click', true); 
      } 
     }); 
    } 
}); 
$('#form').submit(function (e) { 
    //do your validation or whatever you need to do before submit 
}); 
+0

Hi, tôi muốn trả về giá trị của phản hồi, phản hồi sẽ là 'true' hoặc 'false'. nhưng nếu tôi làm điều đó từ bên trong cuộc gọi trở lại nó không hoạt động bởi vì nó trả về phản hồi từ gọi lại. –

+0

Điều này đang xảy ra khi nhấp chuột, nó sẽ trả lại điều gì? Dù sao, thay vì làm bất cứ điều gì bạn muốn làm sau khi nó trở về, chỉ cần làm cho những người vào chức năng và gọi những chức năng từ bên trong gọi lại. – smerny

+0

Cảm ơn bạn, hãy kiểm tra câu hỏi của tôi ngay bây giờ, tôi đã chỉnh sửa nó –

Các vấn đề liên quan