写点什么

vue- 基本操作 - 收集表单元素绑定的数据

  • 2023-06-09
    北京
  • 本文字数:1646 字

    阅读完需:约 5 分钟

用 vue 中的 v-model 收集表单里面的数据,不同的表单元素配合 v-model 会有不同的写法和技巧


本次的表单元素包括:文本框,单选,多选,下拉框,文本域

1 编写表单元素

首先编写表单元素,包括:文本框,单选,多选,下拉框,文本域

input 输入框细节

这里有一个细节(小技巧):表单编写 input 输入框的时候,通常会配合 label 标签使用并加上相关的 css 或或者 js,这样会让界面更加美观,用户体验更好,但是今天主要讲的是 v-model 获取不同的元素数据,就不在代码里面增加复杂的代码了,大家知道就好,我在下面简单演示下加不加的区别


不加上 lable



页面的交互性很差,必须自己点击输入框才能获取到光标



加上 lable



查看页面,点击账号会跳进对应的输入框并获取光标



继续编写表单元素



<!DOCTYPE html><html>
<head> <meta charset="UTF-8"> <title>初始vue</title> <!-- 引入vue.js --> <script type="text/javascript" src="../js/vue.js"></script></head><body> <div id="root"> <form> 账号:<input type="text"><br/><br/> 密码:<input type="password"><br/><br/> 性别: 男<input type="radio" name="sex"> 女<input type="radio" name="sex"><br/><br/> 爱好: 学习 <input type="checkbox" name=""> 打游戏 <input type="checkbox" name=""> 吃饭 <input type="checkbox" name=""><br/><br/> 所属校区 <select> <option value="">请选择校区</option> <option value="beijing">北京</option> <option value="shanghai">上海</option> <option value="shenzhen">深圳</option> <option value="wuhan">武汉</option> </select><br/><br/> 其他信息 <textarea></textarea><br/><br/> <input type="checkbox"> 阅读并接受<a href="#">《用户协议》</a> <button>提交</button> </form> </div></body>
<script type="text/javascript"> const vm= new Vue({ el:'#root', data:{ } })</script>
</html>
复制代码


查看页面



表单元素到此就写完了,接下来就要把表单交给 vue 管理并收集数据了

2 text 输入框和 password 输入框

这两个比较简单,定义两个变量绑定在输入框里面



3 radio 单选按钮

接下来就是性别,也就是 radio 单选按钮,多个单选按钮,但是只能选中一个单选按钮,

错误示例

如果直接简单粗暴的定义变量使用 v-model 绑定单选框,是不行的



页面上获取不到选中的值,为什么会这样的?因为 v-model 默认收集的是输入框的 value,但是目前单选框是没有 value 的,所以获取不到


正确示例

给单选按钮赋值 value 属性即可,注意:value 不要重复




如果想要某一个单元按钮默认选中,可以在属性赋默认值



男默认选中


4 checkbox 多选框

错误示例

和单选框一样,不能直接定义属性使用 v-model



可以看到收集到的是一个布尔值



这个错误和单元框一致,也是没 value 造成的,至于为什么是布尔值,vue 获取的是这一组复选框里面的 checked,所以只要选中了就是 true,不然就是 false


那么给复选框赋上 value 再试试



发现还是不行



哎,为什么给复选框配置了 value 属性还是不行呢?


因为复选框的初始值能够影响到收集到的数据,如果把复选框的属性错误的写成了字符串,那么就算配置了 value 值也不行

正确示例

注意:如果需要获取复选框的值,可以使用这种写法,如果只需要判断是否被选中,也就是 true 或 false,可以参考下面的另外一种使用方式


多组复选框属性应该写成一个数组



这样就好了


5 select 下拉框

select 下拉框就比较正常了,和正常的输入框是一样的




如果想要上来就默认选中,也是和单选框一样的



6 textarea 多行输入框

textarea 多行输入框本质来说也是输入框,写法和正常文本框是一样的




发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2022-10-26 加入

还未添加个人简介

评论

发布
暂无评论
vue-基本操作-收集表单元素绑定的数据_6 月优质更文活动_我搬去水星了_InfoQ写作社区