1
を開きます。セットブートストラップモーダル内部のボタンにフォーカスそれは私には、次の達成しようとしています
- ページのロードが、フォーカスは、フォームの最初の要素になります。
- フォーム上でボタンを押すと、モーダルが確認され、モーダルダイアログ内の "続行"ボタンにフォーカスが移動しているはずです。
私は最初の1つの作業をすることができましたが、2番目の作業ではなぜ動作しないのかわかりません。以下は私のコードです。
HTML
<form method="post" {% if action %} action="{{ action }}" {% endif %} role="form" enctype="multipart/form-data">
<!-- Modal -->
<div class="modal fade" id="confirmationModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">Confirmation</h4>
</div>
<div class="modal-body">
{{ confirm | default: "Would you like to proceed?" }}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" id="submit-main-form" class="btn btn-primary">
<i class="fa fa-save"></i> {{ submit_text | default: "Proceed" }}
</button>
</div>
</div>
</div>
</div>
</form>
スクリプト
/* Sets focus on the first element of the form */
$(document).ready(function() {
$('form:first *:input[type!=hidden]:first').focus();
$("#confirmationModal").on('show.bs.modal', function(event) {
// not setting focus to submit button
$("#submit-main-form").focus();
});
});
'show.bs.modal'イベントが期待通りに機能しているかどうか確認できますか? – Rohit416
@ Rohit416はい。その中に 'alert();'メソッドを追加すると、警告が表示されます。 –
あなたのfocus()が実行された後にアクティブな要素がどれかを見てみましょう。focusを設定した後にこの行を置きます: 'console.log(document.activeElement);' – Rohit416