在BootStrap的modal中使用Select2

在普通页面中使用Select2是正常的,但是在Modal中使用就发现了一些问题,首先如果在页面加载完成后就调用

$(".select2").select2();是会有问题的,你会发现Modal框中的select显示不正常,正确的做法是要改成

$("#editModal").on("shown.bs.modal", function(){
            $(".select2").select2();
 })

这是在Modal显示出来后再初始select2。

但是又发现另一个问题,如果你的Modal定义是下面这样的

<div class=" content modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="editModalLabel" aria-hidden="false">

你会发现select2的输入框不能输入,这时候把tabindex="-1"去掉就可以了。


还有一个方法是

在js 内加上下面这句
$.fn.modal.Constructor.prototype.enforceFocus = function () { };

经实际验证,tabindex="-1"有时候不一定有效,加上上面这句是可以的

参考文章http://stackoverflow.com/questions/18487056/select2-doesnt-work-when-embedded-in-a-bootstrap-modal

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
使用模态框(Modal)显示单选列表时,可以按照以下步骤进行操作: 1.首先,创建一个模态框的 HTML 结构,可以使用 Bootstrap 或其他 CSS 框架来简化样式设计。确保模态框有一个唯一的 ID,用于在 JavaScript 操作。 2.在模态框的内容区域内,创建一个包含单选项的 `<ul>` 或 `<select>` 元素。每个选项可以使用 `<li>` 或 `<option>` 元素表示。 3.为每个选项添加一个值或标签,以便在用户选择后进行处理。 4.在 JavaScript 使用事件监听器或按钮点击事件来触发模态框的显示。 5.在模态框显示时,可以使用 JavaScript 代码动态生成选项列表,或者在 HTML 静态定义。 6.根据用户的选择,可以通过 JavaScript 将选项的值传递给后端处理,或者直接在前端进行相应的操作。 下面是一个简单的示例代码,展示了一个使用 Bootstrap 框架的模态框来显示单选列表: ```html <!-- 模态框结构 --> <div class="modal" id="myModal"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">选择一个选项</h5> <button type="button" class="close" data-dismiss="modal">×</button> </div> <div class="modal-body"> <ul id="options"> <li>选项1</li> <li>选项2</li> <li>选项3</li> </ul> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">确认</button> </div> </div> </div> </div> <!-- 触发模态框显示的按钮 --> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal"> 显示单选列表 </button> <!-- JavaScript 代码 --> <script> // 当模态框显示时,为选项添加点击事件监听器 $('#myModal').on('shown.bs.modal', function () { $('#options li').click(function () { // 获取选项的值或标签 var selectedOption = $(this).text(); // 在这里可以根据需要进行进一步的处理 console.log('用户选择了:' + selectedOption); }); }); </script> ``` 请注意,这只是一个简单的示例,实际使用可能需要根据具体需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值