[解決済み] Bootstrapのモーダルで、特定のフィールドにフォーカスを設定する方法(表示後
2022-04-20 17:30:27
質問
bootstrapのモーダルに関する質問をいくつか見かけましたが、これと全く同じものはありませんでしたので、先に進みます。
私は、このようにonclickを呼び出すモーダルを持っています...
$(".modal-link").click(function(event){
$("#modal-content").modal('show');
});
これはうまくいくのですが、モーダルを表示するときに、最初の入力要素にフォーカスを当てたいのです...。この場合、最初の input 要素の ID は #photo_name です。
そこで、試しに
$(".modal-link").click(function(event){
$("#modal-content").modal('show');
$("input#photo_name").focus();
});
しかし、これは無駄でした。最後に、「show」イベントにバインドしてみましたが、それでも入力はフォーカスされません。最後に、js の読み込み順の問題ではないかと思い、setTimeout を入れて、1秒遅らせたらフォーカスが当たるか試してみたところ、ちゃんと当たりました。しかし、この方法は明らかにくだらないものです。setTimeoutを使用せずに、下記と同じ効果を得る方法はないでしょうか?
$("#modal-content").on('show', function(event){
window.setTimeout(function(){
$(event.currentTarget).find('input#photo_name').first().focus()
}, 0500);
});
解決方法は?
これを試してみてください
以下は、古い DEMO :
EDITです。 (以下は、動作中の デモ Bootstrap 3 と jQuery 1.8.3 を使用)
$(document).ready(function() {
$('#modal-content').modal('show');
$('#modal-content').on('shown', function() {
$("#txtname").focus();
})
});
bootstrap 3 からは、show.bs.modal イベントを使用する必要があります。
$('#modal-content').on('shown.bs.modal', function() {
$("#txtname").focus();
})
関連
-
Vueにシンプルなメモ帳機能を実装
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。
-
[解決済み] どのDOM要素にフォーカスがあるかを調べるには?
-
[解決済み] Bootstrapの列をすべて同じ高さにするにはどうしたらいいですか?
-
[解決済み] BootstrapのモーダルウィンドウをjQueryで開くには?
-
[解決済み] レンダリング後に入力フィールドにフォーカスを設定するには?
-
[解決済み] ブートストラップ・モーダルにデータを渡す
-
[解決済み】Twitter bootstrapのリモートモーダルでは、毎回同じコンテンツが表示される
-
[解決済み] [Solved] 'blur'イベントが発生したとき、フォーカスがどの要素に*行ったかを調べるにはどうすればよいですか?
-
[解決済み] ブートストラップ・モーダルで、表示後最初のテキスト入力にフォーカスを設定する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
jQueryのコピーオブジェクトの説明
-
vueにおけるv-forループオブジェクトのプロパティ
-
[解決済み] 配列の結合時に未定義のプロパティ 'push' を読み込むことができない
-
[解決済み] Web API エラー - このリクエストはブロックされました; コンテンツは HTTPS で提供されなければなりません
-
[解決済み】 Uncaught TypeError : undefined のプロパティ 'replace' を読み取れない In Grid
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)
-
nullのプロパティinnerHTMLを読み取れません エラーメッセージ
-
[解決済み】ブートストラップ・モーダルオープンで関数を呼び出す