Vue—获取表单值

9 篇文章 0 订阅


前言

本文简要记录如何使用Vue收集常见类型的表单数据,以及不同表单类型收集数据时需要注意的几个点。


在Vue中我们通常使用v-model命令绑定表单的属性值(通常是value),获取到的属性值就是表单数据。但是不同类型的表单用此命令收集到的对应属性不同(checked)。需要稍做处理后才能获取到我们实际想要的数据。
不同的表单类型获取表单值的方式也不同。

不同的表单类型获取表单值

若: <input type="text"/>
则v-model收集的是value值,用户输入的就是value值。

若: <input type="radio"/>
则v-model收集的是value值,且要给标签配置value值。

若: <input type="checkbox"/>

1.没有配置input的value属性,那么收集的就是checked(勾选 or 未勾选,是布尔值)

2.配置input的value属性:
(1)v-model的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值)
(2)v-model的初始值是数组,那么收集的的就是value组成的数组

v-model的三个修饰符

  • lazy:失去焦点再收集数据
  • number:输入字符串转为有效的数字
  • trim:输入首尾空格过滤

简单案例

<body>
	<div id="root">
		<form @submit.prevent="demo">
			账号:<input type="text" v-model.trim="userInfo.account"> <br /><br />
			密码:<input type="password" v-model="userInfo.password"> <br /><br />
			年龄:<input type="number" v-model.number="userInfo.age"> <br /><br />
			性别:
			男<input type="radio" name="sex" v-model="userInfo.sex" value="male"><input type="radio" name="sex" v-model="userInfo.sex" value="female"> <br /><br />
			爱好:
			学习<input type="checkbox" v-model="userInfo.hobby" value="study">
			打游戏<input type="checkbox" v-model="userInfo.hobby" value="game">
			吃饭<input type="checkbox" v-model="userInfo.hobby" value="eat">
			<br /><br />
			所属校区
			<select v-model="userInfo.city">
				<option value="">请选择校区</option>
				<option value="beijing">北京</option>
				<option value="shanghai">上海</option>
				<option value="shenzhen">深圳</option>
				<option value="wuhan">武汉</option>
			</select>
			<br /><br />
			其他信息:
			<textarea v-model.lazy="userInfo.other"></textarea> <br /><br />
			<input type="checkbox" v-model="userInfo.agree">阅读并接受<a href="http://www.atguigu.com">《用户协议》</a>
			<button>提交</button>
		</form>
	</div>
</body>
<!-- ---------------------------------------------------------- -->
<script type="text/javascript">
	Vue.config.productionTip = false

	new Vue({
		el: '#root',
		data: {
			userInfo: {
				account: '',
				password: '',
				age: 18,
				sex: 'female',
				hobby: [],
				city: 'beijing',
				other: '',
				agree: ''
			}
		},
		methods: {
			demo() {
				console.log(JSON.stringify(this.userInfo))
			}
		}
	})
</script>

总结

v-model命令绑定表单获取的属性值为value,表单类型不同,需要获取到的数据不一定是value,需要根据表单类型做相应调整以便获取到所需要的数据。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
假设你的表单数据是存储在一个数组中,每个数据对象都有一个唯一的id属性,那么可以通过以下步骤来实现通过id删除表单数据: 1. 给表单元素绑定一个删除事件,例如点击一个删除按钮。 2. 在事件处理函数中获取当前数据对象的id。 3. 使用 JavaScript 的数组方法(例如 Array.prototype.findIndex())找到该数据对象在数组中的索引。 4. 使用 JavaScript 的数组方法(例如 Array.prototype.splice())将该数据对象从数组中删除。 5. 更新表单的显示,例如重新渲染表格或列表。 以下是一个简单的示例代码: ```html <template> <div> <table> <thead> <tr> <th>ID</th> <th>Name</th> <th>Action</th> </tr> </thead> <tbody> <tr v-for="item in items" :key="item.id"> <td>{{ item.id }}</td> <td>{{ item.name }}</td> <td> <button @click="deleteItem(item.id)">Delete</button> </td> </tr> </tbody> </table> </div> </template> <script> export default { data() { return { items: [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' } ] }; }, methods: { deleteItem(id) { const index = this.items.findIndex(item => item.id === id); if (index >= 0) { this.items.splice(index, 1); } } } }; </script> ``` 在上面的代码中,当用户点击 Delete 按钮时,会调用 deleteItem() 方法,并传入当前数据对象的id。该方法会找到该数据对象在 items 数组中的索引,并使用 splice() 方法将其删除。最后,表格会自动重新渲染,显示更新后的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值