2015-06-20 72 views
0

我使用Boostrap創建一個模式對話框,允許用戶在給定頁面上輸入註釋。我想展開,讓我捕捉到選定的文本,它的模式添加到內容領域:JS只用選定文本填充Bootstrap模式似乎只能工作一次

$(document).on("shown.bs.modal", function(){ 
var selectedText = ''; 
var selectedText = window.getSelection().toString(); 
if(selectedText != "") { 
    $('#comment_content').val("> " + selectedText); 
} 
}); 

#comment_content是模式表單的輸入域的id。

這種模式在第一次顯示時效果很好,但它在後續使用中無法工作。

每當我點擊了一些選定的文本註釋按鈕:

%a.btn.btn-primary.btn-sm{:id => 'comments_toggle', "data-toggle" => "modal", "data-target" => "#commentModal"} 
    Post a Comment 

我得到的模態復出,但選擇不應用於#comment_content領域。

另一個有趣的事情是,它也不能在頁面重新加載。直到與該頁面的標籤被銷燬,或者直到我只是轉到另一個頁面,每次點擊所選文本按鈕都會給我一個空的#comment_content字段。

回答

0

嘗試將其嵌入到點擊功能該按鈕:

$(document).on("shown.bs.modal", function(){ 
    $('#comments_toggle').click(function(){ 
    var selectedText = ''; 
    var selectedText = window.getSelection().toString(); 
    if(selectedText != "") { 
    $('#comment_content').val("> " + selectedText); 
    } 
    }); 
}); 
+0

恐怕沒有奏效。不過,它不會有意義嗎? 'shown.bs.modal'發生在該函數中的'.click()'之前可以被查找/捕獲,這意味着按鈕已經被點擊。 –