Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在angularJS中创建全选文本按钮_Jquery_Html_Angularjs_Forms - Fatal编程技术网

Jquery 在angularJS中创建全选文本按钮

Jquery 在angularJS中创建全选文本按钮,jquery,html,angularjs,forms,Jquery,Html,Angularjs,Forms,我到处寻找答案,但没有找到任何与此直接相关的东西 在一个模型中,我有一个禁用/只读的文本区域,以及一个按钮来选择其中的所有文本(用户可以复制这些文本-如果有人知道如何使用选择按钮来创建复制功能,那就太好了) 但是,当单击按钮时,虽然它看起来像是在选择所有文本区域文本,但它只是选择文本区域元素。当您转到“复制并粘贴文本”时,剪贴板中没有可用的内容 以下是相关代码: $scope.selectAll = function() { var selection = $window.getSelect

我到处寻找答案,但没有找到任何与此直接相关的东西

在一个模型中,我有一个禁用/只读的文本区域,以及一个按钮来选择其中的所有文本(用户可以复制这些文本-如果有人知道如何使用选择按钮来创建复制功能,那就太好了)

但是,当单击按钮时,虽然它看起来像是在选择所有文本区域文本,但它只是选择文本区域元素。当您转到“复制并粘贴文本”时,剪贴板中没有可用的内容

以下是相关代码:

$scope.selectAll = function() {
  var selection = $window.getSelection();
  var range = document.createRange();
  var text = angular.element('textarea');
  range.selectNodeContents(text[0]);
  selection.removeAllRanges();
  selection.addRange(range);
};
在HTML中:

<div class="modal-footer">
  <button class="btn btn-default" data-ng-click="selectAll()">Select All</button>
<button class="btn btn-warning" data-ng-click="close()">Close</button>
</div>

全选
接近

创建一个指令并使用
textarea.select()
方法

像这样的

angular.module('myApp.directives', []).
  directive('selectAll', function() {
    return {
      restrict: 'A',
      scope: {},
      link: function (scope,elem,attr) {
        var textarea = elem.parent().find("textarea")[0];
        elem.bind('click', function() {
          textarea.select();
        });
      }
    }
});
这假定button和textarea元素共享同一父元素


正在工作的plunk

谢谢。我试过了,但在控制台中出现了一个“Uncaught TypeError:无法读取未定义的属性'select'。应该是parent().children().find()。我更新了答案。我发现抛出错误的是[0]after text区域。我不知道该怎么做。很高兴你让它工作了,我承认我没有测试代码,但如果删除[0]有效,那就完美了。如果回答了您的问题,请接受答案。它根本不选择任何内容,但不会抛出任何错误。我试试别的。非常感谢。