Laravel中如何实现选中不同name的复选框时自动取消另一项
实现方案
这个需求属于前端交互逻辑,和Laravel后端框架无关,直接通过JS即可实现,以下提供两种常用实现方式:
1. jQuery 实现(Laravel项目默认通常集成jQuery,可直接使用)
如果你的页面元素是静态渲染的,直接绑定change事件即可:
$('.new-control-input').change(function() { if ($(this).is(':checked')) { $('.new-control-input').not(this).prop('checked', false); } });
如果元素是动态渲染的(比如后端循环输出的多个选项),推荐使用事件委托写法,适配动态生成的元素:
$(document).on('change', '.new-control-input', function() { if ($(this).is(':checked')) { $('.new-control-input').not(this).prop('checked', false); } });
2. 原生JS实现(无需依赖jQuery)
const radioList = document.querySelectorAll('.new-control-input'); radioList.forEach(item => { item.addEventListener('change', function() { if (this.checked) { radioList.forEach(other => other !== this && (other.checked = false)); } }) })
注:你给出的示例代码中用的是
radio单选框,如果你实际需要用checkbox复选框,上述逻辑无需修改即可直接复用。后续如果需要新增更多互斥选项,只要给对应元素加上new-control-input类名即可,无需调整JS代码。
内容的提问来源于stack exchange,提问作者seonica
相关产品推荐
相关产品推荐

