首页 > 其他分享 >Vue2(笔记14) - Vue核心 - 表单数据收集

Vue2(笔记14) - Vue核心 - 表单数据收集

时间:2022-12-03 20:32:18浏览次数:40  
标签:Vue 14 收集 提示 修饰符 value 表单 Vue2 model

表单数据收集

表单数据收集是最常用的逻辑;

<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="gender" v-model="userInfo.gender" value="男">
女<input type="radio" name="gender" v-model="userInfo.gender" value="女"><br><br>
爱好:
学习<input type="checkbox" v-model="userInfo.hobby" value="学习">
电影<input type="checkbox" v-model="userInfo.hobby" value="电影">
旅游<input type="checkbox" v-model="userInfo.hobby" value="旅游"><br><br>
城市:
<select v-model="userInfo.city">
<option value="">所在城市</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="长沙">长沙</option>
<option value="武汉">武汉</option>
</select>
<br><br>
其他信息:<br><textarea v-model.lazy="userInfo.other"></textarea><br><br>
<input type="checkbox" v-model="userInfo.agree">阅读并接受
<a href="http://www.51cto.com">《用户协议》</a><br><br>
<button>提交</button>
</form>
</div>

提示1:​@submit.prevent="demo"​  绑定提交事件,没绑定在 btn 上,绑在 form 上,使用了 prvent 修饰符,阻止默认提交行为,一般表单数据都通过 AJAX 发走了;

提示2:账号、密码和年龄的 type 分别是 text、password和number,这个好理解,都分别绑定了 ​v-model​​数据双向绑定,​trim​ 是 v-model 的修饰符,意思是去掉两边的空格;

提示3:性别,男女,注意 type 是 radio ,还要指定 name 才能成组,指定 value 才有取值,设置了默认值;

提示4:爱好,注意 type 是 checkbox ,指定了 value ;

提示5:城市,type 是 select ,v-model 绑定在了 select 上,就可以实现响应式;

提示6:其他信息,使用了 修饰符 lazy 是指当这里信息录入完,焦点跳出后再响应式,否则录入一个响应一个,会影响性能;

提示7:阅读并接受,只有单一复选框,不需要做成数组,默是 布尔值;

new Vue({
el: '#root',
data: {
userInfo: {
account: '',
password: '',
age:18,
gender: '女',
hobby: [],
city: '北京',
other: '',
agree: ''
}
},
methods: {
demo() {
console.log(JSON.stringify(this.userInfo));
}
},
})

提示1:把所有数据都放在 userInfo 这个层级中,放便使用 JSON.stringiy() 转换数据;

提示2:年龄使用了数字类型,给了默认值;

提示3:爱好是多个复选框,可多选,所以做成数组来存储信息;

看下收集的效果:

Vue2(笔记14) - Vue核心 - 表单数据收集_Vue

提交后生成的 JSON :

Vue2(笔记14) - Vue核心 - 表单数据收集_表单数据收集_02


【收集表单数据】

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

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

若:<input type="checkbox"/>

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

2)配置 input 的 value 属性:

1、v-model 的初始值是非数组,那么收集的就是 checked (勾选 或 不勾选,是布尔值)

2、v-model 的初始值是数组,那么收集的就是 value 组成的数组;


备注:v-moel 的三个修饰符:

1)lazy:失去焦点再收集数据;

2)number: 输入字符串转为有效的数字;

3)trim:输入着尾空格过滤;









标签:Vue,14,收集,提示,修饰符,value,表单,Vue2,model
From: https://blog.51cto.com/ahuiok/5908645

相关文章

  • vue中单独封装elementui中的Dialog弹框组件
    一。在components文件中新建弹框组件<template><div><el-dialogtitle="提示":visible.sync="dialogVisible"width="30%"@close="handleClose"><span......
  • Vue3路由
    路由基础(页面跳转)下载vue-router,vue3对应的版本是4cnpminstallvue-router@4启动项目npmrundevrundev的由来组件Home、Blogrouter.jsimport{createRout......
  • [SCOI2014]方伯伯的玉米田题解
    [SCOI2014]方伯伯的玉米田题目描述方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美。这排玉米一共有\(N\)株,它们的高度参差不齐。方伯伯认为单调不下降序......
  • vue element ui 使用el-cascader实现城市选择
    安装依赖cnpminstallelement-china-area-data-S说明provinceAndCityData是省市二级联动数据(不带“全部”选项)regionData是省市区三级联动数据(不带“全部”选项)prov......
  • 郭东白的架构课00014
    你好,我是郭东白。架构师通常并不管理团队,而是管理架构活动。更准确地说,是定义和引导架构活动。因为每个参与架构活动的个体,都有各自工作的优先级和汇报关系。因此在没有管......
  • Vue 中 props配置项
    Vue中props配置项1:props配置项说明<!--##props配置项1.功能:让组件接收外部传过来的数据2.传递数据:```<Demoname="xxx"/>```3.接收数据:1.第一种方式(......
  • Vue3
    Vue3setup()和ref()的使用ref()这是vue3声明变量的方式,并且在setup()中return返回出去才可以在页面中使用。vue2声明的变量需要放在data中声明使用。vue2......
  • ant-design-vue
    vue3引入ant-design-vueUI组件安装npmi--saveant-design-vue@next-S在main.js全局引入importAntdfrom'ant-design-vue';import'ant-design-vue/dist/an......
  • vue
    安装安装nodejs环境命令行npminstall-g@vue/cli创建项目vuecreate<project>安装依赖cd<project>npminstall运行项目npmrunserve配置......
  • 从头再学Vue
    第一篇章动态绑定多个值如果有想这样的一个包含多个attribute的JavaScript对象:constobj={id:'container',class:"wrap"}可以通过不带参数的v-bind将这些att......