>  기사  >  웹 프론트엔드  >  BootStrap 모달박스와 select2를 함께 사용할 때 입력이 포커스를 얻지 못하는 문제를 완벽하게 해결합니다.

BootStrap 모달박스와 select2를 함께 사용할 때 입력이 포커스를 얻지 못하는 문제를 완벽하게 해결합니다.

巴扎黑
巴扎黑원래의
2017-09-02 13:32:432996검색

부트스트랩 모달 상자에서 select2 플러그인을 사용하면 select2의 입력 상자가 포커스와 입력을 얻을 수 없게 됩니다. 이 문제를 해결하는 방법? 아래 편집기는 BootStrap 모달 상자와 select2가 결합될 때 입력이 포커스를 얻을 수 없는 문제에 대한 솔루션을 제공합니다. 부트스트랩 모달 상자에서 select2 플러그인을 사용하면 select2의 입력 상자가 포커스를 얻을 수 있습니다. 포커스를 받을 수는 없지만 입력할 수는 없습니다.

해결 방법: 페이지에서 tabindex="-1" 삭제(테스트 성공):

tabindex="-1"  删掉(测试成功):


<p id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
 <p class="modal-header">
  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  <h3 id="myModalLabel">Panel</h3>
 </p>
<p class="modal-body" style="max-height: 800px">
<p id="myModal" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
 <p class="modal-header">
  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  <h3 id="myModalLabel">Panel</h3>
 </p>
<p class="modal-body" style="max-height: 800px">

可以在onshown方法里面做处理,主要原理就是因为bootstrap的tabindex='-1',占用了select2的tabindex='0'

BootstrapDialog.show({
   onshown: function (dialogRef) {
    $("#"+dialogRef.getId()).removeAttr("tabindex");
  }
})

좋아요 onshown 메서드에서 처리하는 주요 원칙은 부트스트랩의 tabindex='-1'가 select2의 tabindex='0'를 차지하고 스크립트는 모달 상자가 표시된 후 모달 상자의 tabindex 속성을 삭제하세요

$.fn.modal.Constructor.prototype.enforceFocus = function() {};

enforceFocus 메서드를 다시 작성하세요(테스트 결과 효과가 없는 것으로 나타났습니다).

🎜🎜rrreee

위 내용은 BootStrap 모달박스와 select2를 함께 사용할 때 입력이 포커스를 얻지 못하는 문제를 완벽하게 해결합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.