我有一个文本输入。当输入接收焦点时,我想选择输入中的文本。
使用jQuery我会这样做:
<input type="text" value="test" />
$("input[type=text]").click(function() { $(this).select(); // would select "test" in this example });
我搜索过周围尝试找到Angular的方式,但我发现的大多数示例是处理一个指令,正在观察一个模态属性的变化。我假设我需要一个指令,正在监视一个接收焦点的输入。我该怎么做?
在Angular中这样做的方法是创建一个自定义指令,为您执行自动选择。
module.directive('selectOnClick',['$window',function ($window) { return { restrict: 'A',link: function (scope,element,attrs) { element.on('click',function () { if (!$window.getSelection().toString()) { // required for mobile Safari this.setSelectionRange(0,this.value.length) } }); } }; }]);
应用这样的指令:
<input type="text" value="test" select-on-click />
Update1:删除了jQuery依赖。
Update2:限制为属性。
Update3:适用于移动Safari。允许选择部分文本(需要IE> 8)。