uniapp复选框 实现排他选项

这篇具有很好参考价值的文章主要介绍了uniapp复选框 实现排他选项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

选择了排他选项之后 复选框其他选项不可以选择
uniapp复选框 实现排他选项,uni-app,javascript,前端文章来源地址https://www.toymoban.com/news/detail-821616.html






<view class="reportData" v-for="(val, index) in obj" :key="index">
<view v-if="val.type ==3" >
	<u-checkbox-group v-model="optionValue" placement="column"
		@change="(e) =>checkboxChange(e, val)">
						<view v-for="(item, i) in val.optionInfoList" :key="i">
							<u-checkbox :customStyle="{marginBottom: '20rpx'}" :label="item.optionName"
								:name="item.optionName">
							</u-checkbox>
						</view>
					
					</u-checkbox-group>
				</view>
</view>
<script>
	export default {
	data(){
		return {
		obj:"",
		optionValue:''
		}
	},
	onLoad(){
		this.init()
	},
	methods:{
		init(){
		//假设后台返回的数据格式
			res={
			    "code":0,
			    "msg":null,
			    "data":{
			        "name":"排他选择的问卷调查",
			        "questionInfoList":[
			            {
			                "id":"17",
			                "questionContent":"排他选项的题目?",
			                "type":"3",//3表示复选框
			                "optionInfoList":[ //选项
			                    {
			                        "id":"1",
			                        "optionName":"不包含选项",
			                        "optionType":"1"
			                    },
			                    {
			                        "id":"2",
			                        "optionName":"选项1",
			                        "optionType":"1"
			                    },
			                    {
			                        "id":"3",
			                        "optionName":"选项2",
			                        "optionType":"1"
			                    },
			                    {
			                        "id":"4",
			                        "optionName":"选项3",
			                        "optionType":"1"
			                    },
			                    {
			                        "id":"5",
			                        "optionName":"其他",
			                        "optionType":"1"
			                    }
			                ]
			            }
			        ]
			    }
			}}
			//对数据进行处理
			let data=res.data.questionInfoList
			this.obj=data.optionInfoList.map(item=>{
			//如果是复选框 type==3 让所有的复选框默认为false 不选中
				if(item.type==3){
					item.optionInfoList.map(sub=>{
					  sub.checked=false;
					  return sub
					})
				}
				return item
			})
		},
		checkboxFn(e, item, index,i){
				//跟新obj中的checked状态值
				this.$set(this.obj[index].optionInfoList[i],'checked',e)
				//如果选中 并且为排他选项
				if(item.optionType==1 && item.checked) {
					//对整个数据进行遍历
					let optionInfoList=this.obj[index].optionInfoList.map((rr,k)=>{
						//让排他项目选中 其他为false
						if(rr.optionType==1){
							rr.checked=true
						}else {
							rr.checked=false
						}
						return rr
					})
					//更新obj数据
					this.$set(this.obj[index],'optionInfoList',optionInfoList)
				}else {
					//如果选中 并且部位排他项 则 排他项为false 其他根据选择的情况而定
					let optionInfoList=this.obj[index].optionInfoList.map((rr,k)=>{
						if(rr.optionType==1){
							console.log(11)
							rr.checked=false
							
						}
						return rr
					})
					this.$set(this.obj[index],'optionInfoList',optionInfoList)
				}
			},
			//
			checkboxChange(e, val, index) {
				
			}
	}

</script>

到了这里,关于uniapp复选框 实现排他选项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 原生js实现复选框(全选/全不选/反选)效果【含完整代码】

    1、勾选后,可以获取到所勾选的值组成的数组,并展示到页面; 2、全部勾选,以及取消勾选时,要相应地更新全选框的状态及文字显示; 3、点击反选,将所有选项的选择状态置换,并相应改变全选框的状态; 定义一个数组 checkValues ,存放用户所勾选的内容。 再定义一个

    2023年04月13日
    浏览(35)
  • element-ui框架复选框全选功能简单实现

    效果图:   html: data绑定的数据   checkAll: false,   isALL: false, // 全选框是否在勾选状态   tableData: [], //全部数据   bushForm: [], //选中的数据 methods方法里写: //全选的思路--判断选中的数组的长度和原数组对比,一样的话就判断全部选中 全部代码:

    2024年02月11日
    浏览(35)
  • Pygame 基础教程13: 使用 精灵(Sprite) 实现 按钮、开关按钮 和 复选框

    原文链接:https://xiets.blog.csdn.net/article/details/131395471 版权声明:原创文章禁止转载 专栏目录:Pygame 专栏(总目录) Pygame 中并没有按钮、开关按钮、复选框 等基础交互组件,但实际游戏开发中又经常用到。例如用于点击按钮开始游戏的「开始按钮」,用于开启/关闭背景音乐

    2024年02月04日
    浏览(44)
  • Layui禁止表格部分复选框,layui禁止表格自带第一列复选框,layui禁止表格部分复选框,layui获取表格复选框选中数据

    禁止某些行可以勾选操作,及选中后的操作和行操作 执行一个table示例 cols 的第一列就是需要重写的复选框 其中templet: \\\"#toolCheck\\\"的标签块 监听全选重写 获取复选框选中的值,tempTableList当前列表返回的数组 以上即可! 监听行复选框点击(如果没有重写复选框就可以用) 标签

    2024年02月09日
    浏览(42)
  • vue中获取复选框是否被选中的值、如何用JavaScript判断复选框是否被选中

    一、方法介绍          第一种方法:通过获取dom元素,getElementById、querySelector、getElementsByName、querySelectorAll(需要遍历,例如:for循环)         第二种是用v-model在input复选框上绑定一个变量,通过双向绑定的特性来判断复选框是否被选中。 (推荐使用) 二、演示

    2024年02月03日
    浏览(41)
  • html之input复选框变为圆形、自定义复选框、消除默认样式、去除默认样式、事件代理、事件委托

    input 标签对事件委托不起作用,需要单独在 input 上绑定事件。 w3school outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。 注释:轮廓线不会占据空间,也不一定是矩形。 outline 简写属性在一个声明中设置所有的轮廓属性。 MDN CSS的 outli

    2024年02月16日
    浏览(49)
  • react antd阻止Checkbox事件冒泡(折叠面板标题中增加复选框,阻止点击复选框折叠面板展开/折叠)

    背景 折叠面板Collapse标题中增加复选框,点击复选框,会触发折叠面板的展开和折叠。 我们希望勾选复选框的时候,不能影响到折叠面板的展开和折叠。 最开始使用 onChange 自带的event来阻止事件冒泡,这种方式是无效的,代码如下: 解决 监听复选框的 onClick 事件,用 e.st

    2024年02月11日
    浏览(44)
  • 安卓控件 - 单选按钮和复选框

    安卓应用中,常常需要用户从若干选项中进行选择,有时要求只能选择一个,那么就要使用单选按钮(RadioButton),有时要求用户可以选择多个,那么就要使用复选框(CheckBox) 常用属性 属性 含义 orientation vertical (或 horizontal),决定单选按钮是垂直排列还是水平排列 layo

    2024年02月06日
    浏览(38)
  • Layui列表复选框根据条件禁用

    2024年02月12日
    浏览(34)
  • Android:设置复选框 CheckBox 的颜色

    Android:设置复选框 CheckBox 的颜色 meta charset=\\\"utf-8\\\" 如何设置复选框在不同状态的颜色? 默认样式 image 预期样式 image meta charset=\\\"utf-8\\\" 先定义Checkbox的style,在values文件下的styles.xml文件中加入: colorControlNormal是未选中的颜色 ,colorControlActivated表示选中时的颜色, 自己在values下的

    2024年02月06日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包