当前位置: 首页 > 面试题库 >

选择输入焦点上的文本

乐正锦
2023-03-14
问题内容

我有文字输入。当输入获得焦点时,我想选择输入内的文本。

使用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 />

[View demo](http://plnkr.co/edit/bgUG0vbQ3nwuZXfiS71W?p=preview)

Update1 :删除了jQuery依赖项。

Update2 :限制为属性。

Update3 :在移动Safari中工作。允许选择部分文本(要求IE> 8)。



 类似资料:
  • 我们有一个带有下拉列表和Telerik Kendo UI控件的表单(以及Telerik网格)。 当用户从下拉列表中进行选择时,将向MVC控制器动作发出一个ajax调用,该动作将发回更多数据,这些数据将部分填写表单。其中一个字段用Kendo UI NumericTextBox表示。 要求是在数据返回时在此NumericTextbox上设置输入焦点。 然而,这似乎在我尝试的任何场景中都不起作用。 下面

  • 我想得到一个文本字段,每当我点击/点击/聚焦该字段时,它可以选择该字段中当前的全部文本。我自己也在其他React应用程序中使用了一个执行,但这种方法似乎不适用于材质UI。使用Material UI TextFields,我可以看到所选内容简短地覆盖了全文,然后返回到文本末尾闪烁的光标。 你知道怎么做吗?

  • 问题内容: 呈现组件后,将焦点设置在特定文本字段上的反应方式是什么? 文档似乎建议使用引用,例如: 在渲染函数中的输入字段上进行设置,然后调用: 但是我应该在哪里称呼它呢?我已经尝试了几个地方,但无法正常工作。 问题答案: 您应该这样做,而不是。像这样

  • 我正在使用react,希望输入文本显示内存数据存储中的值,然后在值更改时更新存储,从而触发重新渲染。我看到的问题是,我的输入文本在重读时失去了焦点。我已经尝试设置key属性,覆盖shouldComponentUpdate并返回false,以防止react重新为组件命名,但没有效果。不管怎样,后者似乎不是一个好的长期解决方案。 从文档: 请注意,在未来的React中,可能会将ashidCompone

  • 最近,我有了一个无头网络驱动程序,并一直在修补一些。目前,我无法通过xpath定位元素并更改其文本。下面,我试图将“entertexthere”返回控制台,然后将文本更改为类似“helloworld”的内容,然后显示新更改的元素文本。 超文本标记语言: 选择xpath后,我得到以下结果: 这一切都很好,但我对如何修改文本感到困惑。尝试在变量中存储“此处输入文本”我尝试了: 蟒蛇: 任何帮助或见解将

  • 问题:我想更改输入元素焦点上按钮的样式。 下面是模板代码: 以下是css代码: 预期输出:在输入框 1的焦点上。将1倍宽度的边框应用于输入框 2。更改按钮的背景颜色 实际输出: 1。边框应用于输入框 2。按钮的背景色没有变化 http://jsfiddle.net/6Y8GL/7/