[1]项目中有这样的需求,要怎么解决呢。。。默认复选框是全选状态,也可以取消某一个状态,至少选择4个选项才可以点击下一步。这个要怎么实现啊
html:
<ul>
<li>
<input id="yl" type="checkbox" value="yl" v-model="isSelected" @click="nextBtn">
<label for="yl">原料进厂</label>
</li>
<li>
<input id="mk" type="checkbox" value="mk" v-model="isSelected" @click="nextBtn">
<label for="mk">模块组装</label>
</li>
<li>
<input id="cp" type="checkbox" value="cp" v-model="isSelected" @click="nextBtn">
<label for="cp">成品  </label>
</li>
<li>
<input id="zj" type="checkbox" value="zj" v-model="isSelected" @click="nextBtn">
<label for="zj">质检  </label>
</li>
<li>
<input id="cc" type="checkbox" value="cc" v-model="isSelected" @click="nextBtn">
<label for="cc">仓储  </label>
</li>
<li>
<input id="wl" type="checkbox" value="wl" v-model="isSelected" @click="nextBtn">
<label for="wl">物流  </label>
</li>
<li>
<input id="xs" checked type="checkbox" value="xs" v-model="isSelected" @click="nextBtn">
<label for="xs">销售  </label>
</li>
<li class="choose-btn">
<button type="button" @click="$router.back(-1)">上一步</button>
<button type="button" >下一步</button>
</li>
</ul>
js:
export default {
data () {
return {
checked: true,
isSave: false,
isSelected: []
}
},
methods: {
// 当点击checkbox时,先触发click事件。打印数据,然后,才把checbox的value值传给model,
// 使用setTimeout是用伪异步的方式去执行这段代码
nextBtn: function () {
var self = this
setTimeout(function () {
console.log(self.isSelected)
}, 0)
}
}
}
默认复选框是全选状态,也可以取消某一个状态,至少选择4个选项才可以点击下一步。这个要怎么实现啊
这是选择两项之后控制台输出的
isSelected已经储存了选中的值,那在点击下一步的时候判断一下这个数组长度大于四时才进行后续操作就可以了。