You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap-selectpicker循环表单中仅显示对应更新按钮求助

解决方案

1. 修复表单ID唯一性问题

循环生成的表单不能共用同一个ID,这会导致HTML无效并引发后续交互问题。修改循环代码,为每个表单生成唯一ID(示例以PHP循环为例,可根据自身模板语言调整):

START of LOOP (例如PHP: <?php foreach ($items as $index => $item): ?>)

<form id="skill_form_<?php echo $index; ?>">
    <!-- 原有selectpicker代码保持不变 -->
    
    <div class="row" style="margin:0; display:none;">
        <div class="col-12" style="padding: 0; text-align: center;">
            <button type="submit"
                    form="skill_form_<?php echo $index; ?>"
                    class="btn btn-info button_update"
                    style="display: none; font-size: 1em;">Update</button>
        </div>
    </div>
</form>

END OF LOOP (例如PHP: <?php endforeach; ?>)

2. 修改jQuery事件处理逻辑

利用DOM遍历,仅显示当前修改的selectpicker所在表单内的更新按钮:

$('.selectpicker').on('changed.bs.select', function () {
    // 获取当前修改的select所在的表单
    const $currentForm = $(this).closest('form');
    // 显示该表单内的更新按钮及其父容器
    $currentForm.find('.button_update').show();
    $currentForm.find('.row:has(.button_update)').show();
});

逻辑说明

  • $(this) 指向触发事件的具体selectpicker元素
  • .closest('form') 向上查找最近的表单父元素,精准定位当前操作的表单
  • .find('.button_update') 仅在当前表单内查找更新按钮,避免影响其他表单的按钮
  • 同时显示按钮所在的row容器(原代码中row也设置了display:none)

内容的提问来源于stack exchange,提问作者Mauro Vitamia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:20:38