<p>
   <input type="checkbox" id="m_nh3" v-model="mFormData.bd_3"  v-bind:true-value="3" v-bind::false-value="checkFalseValue">
   <label for="m_nh4">不含3</label>
</p>
<p>
   <input type="checkbox" id="m_nh4" v-model="mFormData.bd_4" v-bind:true-value="4" v-bind::false-value="checkFalseValue">
   <label for="m_nh4">不含4</label>
</p>
<p>
   <input type="checkbox" id="m_nh5" v-model="mFormData.bd_5"  v-bind:true-value="5" v-bind::false-value="checkFalseValue">
   <label for="m_nh4">不含5</label>
</p>
<p>
   <input type="checkbox" id="m_nh7" v-model="mFormData.bd_7" v-bind:true-value="7" v-bind::false-value="checkFalseValue">
   <label for="m_nh7">不含7</label>
</p>

最近遇到vue项目中form表单复选框的问题,拿出来分享下,

因为vue没有直接像jqury中的serialize()那样,直接获取表单数据的方法,

为了简单,使用v-model的方法与data数据中的mFormData对象相互绑定,这样在获取表单数据的时候,直接用this.mFormData就可以获取表单数据,

但是在获取checkbox的值得时候,如果不做处理,选中的时候对象中的值为true,没选中的时候值是false,

可能跟我们需要传入后台的数据不符,当然可以在传参的时候对值进行判断修改,但这无形中增加了很多麻烦,

因此,可以使用v-bind:true-value='x'、v-bind:false-value='x'的方法,直接让复选框选中的时候,对象中的值直接是我们想要的数值,

需要注意的是,经常再设置未选中的时候是个空值,如果直接v-bind:false-value=''这样对象中的值还是false,

可以在data中设置一个值为''的数据。

希望对还不熟悉的同学有所帮助。

Logo

前往低代码交流专区

更多推荐