HTML中value使用指定数据,Vue - 如何通过value值来操作表单数据

与用户交互是页面一个很重要的part,日常工作中处理与用户交互相关的工作也比较多,而表单是与用户交互的主要方式之一,因此Vue也为我们提供了一系列操作表单数据的方法,下面来唠一唠这些方法~

开唠之前我们得先准备一个表单~(哎呀妈呀我才知道vscode有截图的插件,我以前截图太辛苦了TAT,唔。。。就是这字可能有点小,不打紧,反正这里就是一个平平无奇的表单,涵盖了常用的表单元素,text,radio,checkbox,blablabla~)

8e2b746e5f0a5c8b6c38972ecb6a9c9a.png

text

text之前已经说过了,直接v-model就行了,这里简单带过一下,毕竟一家人就是要整整齐齐圆圆满满的才好~

HTML:c90c9bb98a47bd0378cdbaa69e948619.png

JS:

aaa2cb2890b8d0875d5ec50ac59c8f99.png

46d6ab136ddc6b5f09448ec4756092b3.png

这里提一嘴,submit按钮会默认将表单提交到form中action指定的地方,如果没写action就会默认刷新页面,也就是将内容提交到当前页面,现在做表单一般不用这个默认的提交行为而是用js的方式手动提交,所以这里我们可以用.prevent禁止这个默认行为。AJAX在这里就不写了,简单打印一下验证是否获取表单数据成功~

HTML:33ab86a189ef267682ea867be4fef92e.png

JS:

130ca53e69b6bbb1423624b64a89fe52.png

1609e29688feaa5acce5bbefead3eb6d.png

radio

从radio开始就要利用到value了~ 这里的value起到了一个标记作用,v-model绑定的变量则用于接收标记,从而达到可以在js中操作表单获取来的数据的效果。

HTML:68bb7e4dd35141b4bb50b912e3767ea4.png

JS:837bec16a2524a7e7a1719da1eb78439.png

效果:4e014fb91b5bf3e81723f95289a0c799.png

checkbox

这里的原理依然是利用value的标记作用~但由于checkbox是多选,所以应当用一个数组来接收标记。

HTML:

0e2170df3cc4abda91f6ff8d3fde520f.png

JS:

f9cd42a1917f44d60d5ac156b64ee528.png

效果:

db2243ffc63f1f7ef2c65e06fcd0c8f1.png

select

同样用到value来标记select中的每个option然后用变量接收标记~

HTML:

cb1cc9fe552bea94aeb8fda9295feae8.png

JS:

1471474d1e43c25dd70bcbafccc1d57a.png

效果:

715d9e44d3bbb77eb0b0cde61c57dd93.png

下拉菜单也支持多选,只要在select标签中加入multiple属性,然后对应的接收标记的变量变成数组,用户则按住shift来进行多选。

HTML:

e67ee5ad5aafaa7009f8aa6592c9b559.png

JS:

659650d1d72be7dd08332c0da046efb1.png

效果:

46f43c2f8598ecf86421507735354640.png

textarea

操作textarea数据的方法和操作text的方法是一样的,直接双向绑定。

HTML:

5c90372f235c745618056b437334a290.png

JS:

34f710c9d33c8a34e96e1024935e908e.png

效果:87fd9ec0612b316539cf1bf495f8655c.png

表单域修饰符

除了之前说过的事件修饰符和按键修饰符,Vue还为我们提供了表单域修饰符用于表单域的特殊操作需求,具体用法是在v-model指令中加入修饰符。

number 转化为数值

用户通过表单传递到后台的数据均为字符串,因此遇到运算场景就需要将数据转换为数值型,修饰符number的作用就是将数据类型转换成数值型(仅限用户在表单输入域输入的数据)。

HTML:

b8610c79333cf25a2a6ede454f3883a1.png

JS:

8647a5a99604b9fda69ae3ada513a162.png

效果:

04cac3f0c98ef3484fd31d2eabe58b21.png

trim 去掉开始和结尾的空格

下面是使用修饰符前输入空格后的数据长度:

HTML:3172822bec4c2e4db9ba21f0ab5df0cf.png

JS:b7863e7c62c7d08f96ad4eca981d9d8e.png

效果:fc97d1b1dda787d91a9a2c32f8d6fa74.png

下面是使用了修饰符后输入空格后的数据长度:

HTML:

7bf0ad9f0e7fd149afe5c22d6ec1c7d2.png

效果:

07a53c12add63697e91234c5f2535989.png

【注意】这里这能去掉字符串开头和结尾的空格,字符串中间的空格是去不掉的。

lazy 将input事件切换为change事件

input事件是当每次输入内容的时候都会被触发,而change事件是只有当失去焦点的时候才会被触发,触发的时机相较input事件晚。

在使用lazy修饰符之前:

d37e861afffd2b1141115852a03dc703.png

03ff271c691c8435ad2c3e3f8717a0e8.png

v-model默认使用的事件是input事件,input事件会监控输入框的内容变化,只要一有变化事件就会被触发。

输入框除了input事件还有一个change事件,而这个chang事件被触发的时机是当失去焦点的时候。

使用lazy修饰符可以将输入框的input事件切换为change事件:

03935ea06595037ec7dd018c91741160.png

0dbd1aad7bb10eb90bc06892a1764e65.png

可运用的场景比如常常会遇到用户名是否已被占用验证,这个验证的动作需要在用户输入完整的用户名之后,因而用change事件合适。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值