Vue中v-model结合radio、checkbox、select类型的绑定

一.与radio结合

  • 在用radio实现单选时,我们采用name元素来达到目的

  • 当radio与v-model结合时,可以将name元素省略,用v-model来达到目的

二.与checkbox结合

1.checkbox实现单选

  • 如果checkbox里的v-model=“Boolean类型”,当点击此选框时,boolean类型会自动转换。即true->false,false->true
  • 一般对应data中的布尔类型
<div id="app">
    <label for="agree">
        <input type="checkbox" id="agree"  v-model="isAgree" >同意协议  //isAgree初始定义为false
    </label>
    <h2>您选择的是:{{isAgree}}</h2>
    <button :disabled="!isAgree">下一步</button>
</div>

2.checkbox实现多选框

  • 一般对应data中的数组类型,因为要返回多个值
<input type="checkbox" value="篮球" v-model="hobbies">篮球
<input type="checkbox" value="足球" v-model="hobbies">足球
<h2>您选择的是:{{hobbies}}</h2>

3.与select结合

1.select实现单选

  • v-model绑定的是一个值

2.select实现多选

  • 在select标签内部,多写一个mutiple,在浏览器中按住ctrl键即可实现多选
  • v-model绑定的是一个数组
<div id="app">
		<select name="abc" v-model="fruit"> //在select中写v-model,此select为单选
			<option value="香蕉">香蕉</option>
			<option value="苹果">苹果</option>
			<option value="橘子">橘子</option>
		</select>
		
		<select name="abc" v-model="fruits" multiple>//此select为多选
			<option value="香蕉">香蕉</option>
			<option value="苹果">苹果</option>
			<option value="橘子">橘子</option>
		</select>
		<h2>您选择的水果是:{{fruits}}</h2>
	</div>	
	<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>	
<script type="text/javascript">
	var app = new Vue({
		el: "#app",
		data:{
			fruit: "苹果",
			fruits: [],
		}
	})
</script>

4.值绑定

<label v-for="item in originHobbies" :for="item">
	<input type="checkbox" :value="item" :id="item" v-model="hobbies">{{item}}
</label>

<script>
 var arr = new Vue({
	el : "#app",
	data:{
		hobbies: [],
		originHobbies: ['篮球','足球','乒乓球','羽毛球'],
}
})
</script>
  • 之前的案例中,value值都是直接定义在input中的,即为写死的
  • 但在实际开发中,这些input的值可能是从网络中获取或定义在data中
  • 所以可以使用v-bind:value=""来动态给value绑定值,缩写为:value=""

5.修饰符

1)lazy修饰符:

  • 默认情况下,v-model默认是在input事件中同步输入框的数据
  • 也就是说,一旦数据发生改变对应的data中数据就会自动发生改变
  • lazy修饰符实现懒加载的目的,它可以让数据在失去焦点或者按下回车键时才会更新,即v-model.lazy=""

2)number

  • 默认情况下,在输入框中无论输入的是数字还是字母,v-model都会将其转换为字符串类型
  • 如果我们希望处理的是数字类型,那么最好直接将内容当做数字处理
  • number修饰符可以让输入框中输入的内容自动转成数字类型v-model.number=""

3)trim修饰符

  • 如果输入的内容首尾有很多的空格,通常我们希望将其去除
  • trim修饰符可以过滤内容左右两边的空格v-model.trim=""
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue,v-model可以绑定到多种表单元素上,包括input、select和textarea等。\[1\]对于input元素,可以通过v-model将数据绑定到其value属性上,例如<input v-model="data" />。\[3\]对于checkbox元素,可以使用v-model将数据绑定到其选状态上,选时v-model绑定的值会被修改为true,否则为false。\[2\]对于radio元素,可以使用v-model将数据绑定到其value属性上,通过选不同的radio按钮来修改v-model绑定的值。\[3\]对于select元素,可以通过v-model将数据绑定到其选的option的value属性上,通过选择不同的option来修改v-model绑定的值。\[3\]此外,v-model还可以结合.lazy、.number、.trim等修饰符来限定其行为。在自定义组件上使用v-model时,其行为会有所不同,类似于sync修饰符,最终展开的结果是一个modelValue属性和一个update:modelValue事件。在Vue3,还可以使用参数形式指定多个不同的绑定,例如v-model:foo和v-model:bar。\[3\]总之,v-modelVue可以绑定到多种表单元素上,提供了方便的双向数据绑定功能。 #### 引用[.reference_title] - *1* [vuev-model双向绑定原理](https://blog.csdn.net/weixin_57322537/article/details/120428298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Vuev-model表单绑定几种实现方式](https://blog.csdn.net/qq_42707967/article/details/115806262)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vuev-model双向绑定使用和原理](https://blog.csdn.net/m0_67749488/article/details/125289608)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值