[解決済み] 入力フォーカスでテキストを選択する
2022-09-11 19:57:56
質問
テキスト入力があります。入力にフォーカスが当たったとき、入力の中のテキストを選択したい。
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 />
更新1 : jQueryの依存関係を削除しました。
更新2 : 属性として制限する。
更新3 : モバイルSafariで動作するようにしました。テキストの一部を選択できるようにした(IE>8が必要)。
関連
-
[解決済み] angularのpostリクエストでpreflightのレスポンスがHTTPステータスコード403で不正になる。
-
[解決済み] AngularJSのグローバル変数
-
[解決済み] ag-gridの行の追加/削除
-
[解決済み] ng-repeat内で$indexを使用して、クラスを有効にしてDIVを表示するにはどうすればよいですか?
-
[解決済み] AngularJSのリソースプロミス
-
AngularJSのベストプラクティス。ng-repeatの$indexに注意する。
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] 入力フィールドにフォーカスを当てるには?
-
[解決済み] AngularJSのngClassの条件付き
-
[解決済み] AngularJS ディレクティブとデフォルトのオプション
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 方法 $state.go()
-
[解決済み] AngularJs ReferenceError: $http is not defined
-
[解決済み] Angular ng-repeat エラー "リピータ内の重複は許可されません。"
-
[解決済み] ReferenceError: Angularは定義されていません。
-
[解決済み] angularjsでチャートを作成する【終了】。
-
[解決済み] ng-pattern` - 数字だけをチェックする方法は?
-
[解決済み] angularJSの::の意味するところ
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] コントローラでフィルタを使用するには?
-
[解決済み] HTMLのテキスト入力でクリックするとすべてのテキストが選択される