2011-08-10 28 views
5

Tôi có một loạt các quy trình xác thực javascript có xác nhận. Tôi muốn sử dụng hộp thoại jquery ui, nhưng tôi cần trả về true cho phần còn lại của quá trình xác nhận.Hộp thoại giao diện người dùng Jquery thay cho javascript xác nhận

Ví dụ:

var where_to_coupon = confirm(pm_info_msg_013); 
     if (where_to_coupon== true) { 
     doSubmit=true; 
     return doSubmit; 

Vì vậy, tôi cần một chức năng để thay thế xác nhận với một hộp thoại UI, kéo chuỗi tin nhắn (pm_info_msg_013), và sử dụng các nút hoặc nút UI của riêng tôi để trở về đúng cho quá trình xác nhận .

Không chắc bắt đầu từ đâu.

trợ giúp?

Trả lời

9

Trong hộp thoại Giao diện người dùng jQuery, hãy đặt tùy chọn modal thành true và chỉ định hành động người dùng chính và phụ với tùy chọn buttons.

$("#dialog-confirm").dialog({ 
     resizable: false, 
     height:140, 
     modal: true, 
     buttons: [{ 
      text: pm_info_msg_013, 
      click : function() {  
       $(this).dialog("close"); 
       // code related to "where_to_coupon== true" goes here 
       // submit form 
       } 
      }, { 
      text: "Cancel", 
      click: function() { 
       $(this).dialog("close"); 
       doSubmit = false; 
       // don't submit form 
      }}] 
    }); 

Xem demo ở đây: http://jqueryui.com/demos/dialog/#modal-confirmation

Cập nhật: này sẽ cho phép bạn tạo nhiều khẳng định. Cách sử dụng:

function CreateDialog(okText, cancelText, okCallback, cancelCallback) { 
     $("#dialog-confirm").dialog({ 
      resizable: false, 
      height:140, 
      modal: true, 
      buttons: [{ 
       text: okText, 
       click : function() {  
        $(this).dialog("close"); 
        okCallback(); 
        } 
       }, { 
       text: cancelText, 
       click: function() { 
        $(this).dialog("close"); 
        cancelCallback(); 
       }}] 
      } 
     }); 

// ******* usage #1 ********  
CreateDialog(pm_info_msg_013, "Cancel", function() { 
    // where_to_coupon== true 
}, function() { 

    // where_to_coupon== false 
}); 

function OnConfirmTrue() { 
    // do something 
} 

function OnConfirmFalse() { 
    // do something 
} 

// ******* usage #2 ******** 

CreateDialog(pm_info_msg_013, "Cancel", OnConfirmTrue, OnConfirmFalse); 
+0

không chắc chắn cách kết hợp với chuỗi xác nhận javascript của tôi – Jason

+0

Bạn sẽ cần phải tự động thay đổi html của hộp thoại 'dialog-confirm' div (' $ ("# dialog-confirm"). html (pm_info_msg_013) ') trước khi gọi mã trên –

+0

Xem mã được cập nhật của tôi. – Mrchief

1

Tôi đã tạo một plugin cho giao diện người dùng jQuery, được gọi là dialogWrapper, cung cấp một số phương pháp, bao gồm phương thức xác nhận. Bạn gọi nó như sau:

$.confirm("Prompt", function(){}, function(){}, {}); 

Đối số thứ hai và thứ ba là phải làm gì khi nút có và không được nhấp tương ứng. Thứ tư là cho các đối số bổ sung.

Kiểm tra nó ra ở đây: http://code.google.com/p/dialogwrapper/

Nó không làm việc như mẹ đẻ phương thức JavaScript confirm, tuy nhiên, vì nó là không đồng bộ. Vì vậy, bạn sẽ không thể ghi đè trực tiếp confirm với $.confirm.

+0

trông thú vị, nhưng tôi đang cố gắng chạm vào mã tối thiểu (đặc biệt là trong javascript) - vì vậy làm cách nào tôi trả lại đúng hoặc sai trong plugin của bạn? – Jason

+0

Bạn không thể, vì '$ .confirm' hoạt động không đồng bộ. Nó hoàn toàn dựa trên callbacks. Không có cách nào để sử dụng jQuery Dialogs một cách đồng bộ mà không có mã bị chặn UI (ví dụ, một vòng lặp 'while' để kiểm tra xem một nút đã được nhấn chưa). –

+0

tốt, tôi giả sử có phải là một cách (một chức năng thứ hai) hoặc một sự kiện onclick để kích hoạt một sự thật? – Jason

0

Bạn đã thử Impromtu bởi Trent Richardson chưa?

http://trentrichardson.com/Impromptu/

này jquery plug-in có thể cung cấp cho bạn sự kiểm soát bạn đang tìm kiếm với nhắc nhở và khẳng định và nhiều hơn nữa.

+0

Vui lòng thử đọc http://stackoverflow.com/help/deleted-answers này để hiểu thêm về cách ** không ** trả lời. Cụ thể: "Câu trả lời không trả lời về cơ bản câu hỏi": ** hầu như không chỉ liên kết đến một trang web bên ngoài ** –

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