![Vue.js企业开发实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/909/44509909/b_44509909.jpg)
2.5 表单输入绑定
2.5.1 双向绑定
MVVM模式最重要的一个特性就是双向绑定,而Vue作为一个MVVM框架,也实现了数据的双向绑定。在Vue中使用内置的v-model指令完成数据在View与Model间的双向绑定。
v-model会忽略所有表单元素的value、checked、selected attribute的初始值而将Vue实例的数据作为数据来源,因此应该通过JavaScript在组件的data选项中声明初始值。
2.5.2 v-model基本用法
当v-model使用在不同的表单元素上时,保存值的类型也是不同的,常见的表单元素数据绑定操作如下。
1.文本输入框
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P61_26602.jpg?sign=1739593128-WFOgnKBBfaN32YdUoJK2yiRF7cZUothY-0-faadb266fdf9926f6e4c8df3d494481e)
在浏览器中运行的效果如图2.41所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P61_6941.jpg?sign=1739593128-gNRiZE9IpHNpKJOBB5vdErw6CYyWzgcd-0-c96206bfe9cc28cb01c1bb2b1328e060)
图2.41 绑定文本输入框
2.文本域
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P61_26603.jpg?sign=1739593128-g3VZj5HIrpXRpvSykZMVPzHjkuYFbl7Q-0-bb6e45e733cea70f46b381dcc9913331)
在浏览器中运行的效果如图2.42所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P61_7001.jpg?sign=1739593128-ld9VU3dOgrr6f1kIDUwZ9VPS6VevPJ15-0-67f9597872f435823952d638aef82abc)
图2.42 绑定文本域
3.复选框
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P62_26604.jpg?sign=1739593128-o9hRIFerKv2DUPVsEzXNfoRzcgMRzFAa-0-eb7925941339fa7220f8a5fbdbaeab44)
在浏览器中运行的效果如图2.43所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P62_7088.jpg?sign=1739593128-hpXefZHebknyCBNEPAu1btyuHr2rgv31-0-e74722f9f9a601ff9ae55fbb46fb28b4)
图2.43 绑定复选框
4.单选按钮
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P62_26605.jpg?sign=1739593128-bYu1A5a7lanXkMMgNAxDQL2o6NSIHCnc-0-68022dbd02e5282183d0c2e4a1f95337)
在浏览器中运行的效果如图2.44所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P63_7189.jpg?sign=1739593128-iAVt26QGaRfM0sJyVMWtC6xeHcPrMbNt-0-5e50fe879c215b352bd38931b46cee32)
图2.44 绑定单选按钮
5.下拉选择框
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P63_26606.jpg?sign=1739593128-RnKGHpNNOD26xjoS3pptIeEfBu3lgG6r-0-eddcec68e5da604900f527fd8b55e416)
在浏览器中运行的效果如图2.45所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P63_7286.jpg?sign=1739593128-AI90VlsoZKFNWJMCOfWzI4jAZxaYJl6q-0-bf4543f7d0e1d3fbfa1439a5945e9d61)
图2.45 绑定下拉选择框
2.5.3 修饰符
对于v-model指令,有3种常用的修饰符。
· lazy
· number
· trim
1.lazy修饰符
在输入框中,v-model默认为同步数据,使用lazy修饰符后会转变为在change事件中同步,即当输入框失去焦点时数据才会更新。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P64_26607.jpg?sign=1739593128-vOqeQPWUXzAx2tr2T1BWPu06XLhdZh1u-0-54e14d0403355cd82f61d1d889865999)
在浏览器中运行,当输入内容时不会同步更新,如图2.46所示。当输入框失去焦点时,数据才会被更新,如图2.47所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P64_7355.jpg?sign=1739593128-hh22gr5j7LaYYuYO0G0X2mDCAOBxqQJd-0-fa7112aed7181b7d2847ccfc0a964217)
图2.46 输入数据
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P64_7358.jpg?sign=1739593128-oClxzz1JhQPFHI993Iu0F6JRQ3FUttIN-0-decdbf2a5dfd514004b27fc7b30d63da)
图2.47 失去焦点时才更新数据
2.number修饰符
输入框默认输入的值为String类型,使用number修饰符可以将输入的值转化为Number类型,该修饰符经常使用在数字输入框中。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P64_26608.jpg?sign=1739593128-On6yoyT1yrR0bBYtLocKSmcBiay9NAdU-0-922dccb417bc2ec41a6bc8a68db8df40)
在浏览器中运行,输入框的默认值为String类型,如图2.48所示。当输入数字时,值的类型会被转化为Number类型,如图2.49所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P65_7433.jpg?sign=1739593128-GjIuVsVGBjhXzZDQjuU7A03Pvv8W2uYv-0-e9a3c7d4b2c70b81da6af5019be920c4)
图2.48 输入框的默认值类型
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P65_7436.jpg?sign=1739593128-Q0i4UkHb9FOybyJLEn1dOQyB5CNV3GnN-0-c4dcd7a009a663e0ca259db145714d79)
图2.49 值的类型被转化为Number类型
3.trim修饰符
如果要自动过滤用户输入内容的首尾空格,可以给v-model添加trim修饰符。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P65_26610.jpg?sign=1739593128-Ai2SSZwp59sVlo0CunArsyLJNxCkMWAh-0-24cd53005c02aa3fd02c7b8f06e5426c)
在浏览器中运行的效果如图2.50所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P65_7492.jpg?sign=1739593128-d8bDgwJJ7UIN7Of9KDksM8l1XDNixtL5-0-ba638193da42820127db7c5375d60a79)
图2.50 trim修饰符效果