Sweetalert: ブートストラップモーダルの上で使用すると、入力フィールドが機能しません

作成日 2015年07月29日  ·  22コメント  ·  ソース: t4t5/sweetalert

私は現在、ブートストラップモーダル内からswalを呼び出しています。 ボタンは機能しているように見えますが、スワルの入力はクリックを受け入れておらず、フォーカスも取得していません。 これは既知の問題なのか、それとも私がしていることなのか疑問に思います。

最も参考になるコメント

原因は、Bootstrapのモーダルに設定されているtabindex="-1"ことがわかりました。

修正:

// call this before showing SweetAlert:
function fixBootstrapModal() {
  var modalNode = document.querySelector('.modal[tabindex="-1"]');
  if (!modalNode) return;

  modalNode.removeAttribute('tabindex');
  modalNode.classList.add('js-swal-fixed');
}

// call this before hiding SweetAlert (inside done callback):
function restoreBootstrapModal() {
  var modalNode = document.querySelector('.modal.js-swal-fixed');
  if (!modalNode) return;

  modalNode.setAttribute('tabindex', '-1');
  modalNode.classList.remove('js-swal-fixed');
}

全てのコメント22件

私も同じ問題を抱えていました。 私がやったことは、modal.hideでモーダルを「非表示」にし、スワルを開き、inputValueで必要なことをすべて実行し、成功またはスワルのキャンセル時にmodal.showでモーダルを表示することでした。
お役に立てれば。

ダン
私はこれに対する修正を見つけました。 明日投稿します

Outlookから送信

2015年8月10日月曜日の午前6時52分-0700に、「DanKaufman」 [email protected]は次のように書いています。

私も同じ問題を抱えていました。 私がやったことは、modal.hideでモーダルを「非表示」にし、スワルを開き、inputValueで必要なことをすべて実行し、成功またはスワルのキャンセル時にmodal.showでモーダルを表示することでした。

お役に立てれば。


このメールに直接返信するか、GitHubで表示してください。

こんにちはmteichtahl、

修正を投稿しましたか? 私はそれを見つける事が出来ません。 本当に役立ちます!

こんにちは、

スイートアラート(およびsweetalert2)と同じ問題。
入力フィールドは、Firefoxのみにフォーカスを取得しません。 これは、ブートストラップモーダルからスワルを開くときにのみ発生します。

まだ問題を理解できません。 本当に奇妙です。

私は同じ問題を抱えています...誰かが解決策を持っていますか?

こんにちは、これは入力プレースホルダーを表示することを許可しますが、入力に焦点を合わせるように修正されていません...

#537

私は同じ問題を抱えています、修正を見つけることができません...

+1

原因は、Bootstrapのモーダルに設定されているtabindex="-1"ことがわかりました。

修正:

// call this before showing SweetAlert:
function fixBootstrapModal() {
  var modalNode = document.querySelector('.modal[tabindex="-1"]');
  if (!modalNode) return;

  modalNode.removeAttribute('tabindex');
  modalNode.classList.add('js-swal-fixed');
}

// call this before hiding SweetAlert (inside done callback):
function restoreBootstrapModal() {
  var modalNode = document.querySelector('.modal.js-swal-fixed');
  if (!modalNode) return;

  modalNode.setAttribute('tabindex', '-1');
  modalNode.classList.remove('js-swal-fixed');
}

モーダルが高すぎてy軸上でスクロールできる場合にのみ発生することを除いて、ほぼ同じ問題があります。

私を助けてください...

シナモンのタブ修正は私にはうまくいきませんでした:(

+1
@eminumut @navas
swalを表示する前にfixBootstrapModal()を呼び出しましたか? 最初はそれをするのを忘れていましたが、今では完璧に機能します!

ありがとう@Cinamonas

@ Alagaesia93

いくつか例を教えていただけますか?

@eminumut

fixBootstrapModal()
swal({whatever}, function(isConfirm){
whatever
restoreBootstrapModal()
}

わたしにはできる :)

この修正により、IE11で構文エラーが発生します

@ caleb87 、矢印関数とconstを使用しないようにスニペットを更新しました。

これはBootstrapの問題のようですので、ここで終了します。 修正してくれてありがとう@Cinamonas!

こんにちは、私は同じ問題に直面しました。
この問題は、BootstrapModalから{tabindex = "-1"}を削除することで解決できます。
それは私にとってはうまくいきます。

Rでこの修正を適用する方法を知っている人はいますか? 私は同じ問題を抱えていますが、それをRに変換する試みは今のところ失敗しています

原因は、Bootstrapのモーダルに設定されているtabindex="-1"ことがわかりました。

修正:

// call this before showing SweetAlert:
function fixBootstrapModal() {
  var modalNode = document.querySelector('.modal[tabindex="-1"]');
  if (!modalNode) return;

  modalNode.removeAttribute('tabindex');
  modalNode.classList.add('js-swal-fixed');
}

// call this before hiding SweetAlert (inside done callback):
function restoreBootstrapModal() {
  var modalNode = document.querySelector('.modal.js-swal-fixed');
  if (!modalNode) return;

  modalNode.setAttribute('tabindex', '-1');
  modalNode.classList.remove('js-swal-fixed');
}

天才

複数のモーダルをお持ちの方は、以下を使用できます。
Documentosemtítulo(1).pdf

このページは役に立ちましたか?
0 / 5 - 0 評価