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]有效,那就完美了。如果回答了您的问题,请接受答案。它根本不选择任何内容,但不会抛出任何错误。我试试别的。非常感谢。