0

基本的なコードを使用して、ユーザーがテキストフィールドをクリックしたときにテキストフィールド内のテキストを強調表示しています。

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

これは素晴らしいことですが、削除する選択肢しかありません。つまり、選択したテキストの中央をクリックして、すでにそこにある単語や文字の途中に何かを追加することはできません。

シナリオ...ユーザーが「赤い車」を検索すると、ハイライト表示されているボックスをクリックできるはずなので、削除を押して「青い車」を検索します。または、入力をクリックして検索を「大きな赤い車」に変更することもできます。

クリックしてからもう一度クリックしてハイライトの設定を解除することはできますか?または、他にどのような方法を使用できますか?

または、ページの読み込み時にフィールドを選択してから、クリックして選択を解除する必要がありますか?それも可能ですか?

私はこれを広範囲に検索しましたが、まだ運がありません。

4

1 に答える 1

1

入力のクリック数を追跡し、基本的にselect()vsを切り替えることができます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 に答える