JS用所选文本填充Bootstrap模式似乎只工作一次

时间:2015-06-20 01:40:39

标签: javascript jquery twitter-bootstrap

我正在使用Boostrap创建一个模式对话框,允许用户在给定页面上输入注释。我想扩展它以允许我捕获所选文本并将其添加到模态中的内容字段:

$( 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字段。

1 个答案:

答案 0 :(得分:0)

尝试将其嵌入到该按钮的点击功能中:

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