2016-07-26 48 views
0

我想顯示一個包含「OK」按鈕的Bootbox對話框。當用戶點擊「確定」按鈕時,它應該回發,並用消息的ID來確認用戶已經查看了消息。 Bootbox對話框是表單。我沒有看到使對話框按鈕成爲帶有隱藏字段的提交表單的方式,這是我認爲是實現我的目標的正確方法。在Bootbox對話框中輸入

+1

貌似插件有一個回調函數的提示。你可以用它來代替。 –

+1

來自[this](http://bootboxjs.com/examples.html)的最後一個例子展示了一種在Bootbox對話框中使用表單的方法。這是你尋找的這種東西嗎? – Mistalis

+0

@IsabelInc - 我正在看看去那條路線 – Sonny

回答

0

感謝Isabel IncMistalis的有用評論,我有一個工作解決方案。具體到我的實現

注:

  • 的消息包含需要響應的圖像,所以我相應的自舉類添加到每個圖像
  • 的消息可能有聯繫。點擊一個鏈接就相當於點擊對話框

,這使得它發生JavaScript的「OK」 ......

jQuery(function($, window, bootbox, undefined) { 
    var accept = function(callback) { 
     $.ajax({ 
      type: 'POST', 
      data: {message_id: 244826}, 
      success: callback() 
     }); 
    }; 

    var $message = $('<p><img src="https://www.gravatar.com/avatar/80fa81938a6d1df92cd101d7fe997a71" alt></p><p>Here is a message from <a href="https://stackoverflow.com/users/244826/sonny">Sonny</a>.</p>'); 
    $message.find('img').addClass('img-responsive center-block'); 
    $message.find('a').on('click', function(e) { 
     var href = $(this).attr('href'); 
     if (0 === href.length) { 
      return; 
     } 
     e.preventDefault(); 
     accept(function() { window.location.href = href; }); 
    }); 

    bootbox.dialog({ 
     message: $message, 
     closeButton: false, 
     buttons: { 
      accept: { 
       label: 'OK', 
       callback: function() { 
        accept(function() { window.location.reload(); }); 
       } 
      } 
     } 
    }); 
}(jQuery, window, bootbox));