0

当用户单击文本字段时,我正在使用基本代码突出显示文本字段中的文本:

<input type="text" id="search_for" name="searchTerm" onclick="this.select()">

这很好,但您只能选择删除,这意味着您实际上无法在所选文本的中间单击以在已经存在的单词/字符中间添加一些内容。

场景...如果用户搜索“红色汽车”,他们应该能够点击突出显示的框,因此点击删除并搜索“蓝色汽车”。或者,他们可能希望单击输入并将搜索更改为“大红色汽车”。

是否可以单击然后通过再次单击取消突出显示?或者我可以使用什么其他方法?

或者我应该在页面加载时选择该字段,然后单击取消选择?这甚至可能吗?

我已经为此进行了广泛的搜索,但还没有运气。

4

1 回答 1

1

您可以跟踪输入中的点击次数,并基本上切换select()focus(). 它可能不完全是您所指的,但它是您可以做的事情。

请参阅工作 jsFiddle 演示。

HTML:

<input type="text" 
       id="search_for" 
       name="searchTerm" 
       onclick="searchForClick(this);" 
       value="text text text text" />​

JavaScript:

searchForClickCount = 0;

function searchForClick(el) {

    if (searchForClickCount === 0) {
        el.select();
        searchForClickCount++;
    } else if (searchForClickCount >= 0) {
        el.focus();
        searchForClickCount = 0;
    }

}​
于 2012-04-09T15:03:02.490 回答