![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=1738914711-LIg4UFep0mg01KtToHiUbXqYdxrSKhcp-0-e73eb2a53567e5fb8bfcc4b581d7e8e5)
在浏览器中运行的效果如图2.41所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P61_6941.jpg?sign=1738914711-2EhMyLDg8KkuB4LaT02n3Ee0DH5Gzqx4-0-f456b0c1a5c7c414a8021cf89483fbf3)
图2.41 绑定文本输入框
2.文本域
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P61_26603.jpg?sign=1738914711-qnEf7vrgKIUjLoafSwe6dVJIh4acfkXF-0-9876ca27b273d823aa8abe3a77342df8)
在浏览器中运行的效果如图2.42所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P61_7001.jpg?sign=1738914711-SB1FohBSnwCPiZQBTAm148t3WIBqToDC-0-855fab77812a05edcfaf3d6199b80a4d)
图2.42 绑定文本域
3.复选框
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P62_26604.jpg?sign=1738914711-aLZP25smRTjtYUXScqLJc6YWmCpHutLd-0-55b61d0000ef227689b82b94e9c7a1c9)
在浏览器中运行的效果如图2.43所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P62_7088.jpg?sign=1738914711-mni9QKoXpf2NAFot6pwG94C8IrSJwvhV-0-846ca8f3ae3187f8d6533ce0883d80d9)
图2.43 绑定复选框
4.单选按钮
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P62_26605.jpg?sign=1738914711-BP2HnqGSNnR1P3swwN94jTSlSQHsQ1Y5-0-09f15844b3ab02670e46866b8f18aa9e)
在浏览器中运行的效果如图2.44所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P63_7189.jpg?sign=1738914711-LUnRFe08rh8lZwz4nwbKviHN4Ce6jV1j-0-1e972caea9da83f719ef0445a7613d39)
图2.44 绑定单选按钮
5.下拉选择框
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P63_26606.jpg?sign=1738914711-ucf0uJX1pwpojeEGuaHHNhhClivZKNeM-0-3149945606df9600e432857097de8781)
在浏览器中运行的效果如图2.45所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P63_7286.jpg?sign=1738914711-jaJCwjT2CbcGih91UIB5ZT63fmAynUJ9-0-e6bc3c78674202342f70d5a93d77e759)
图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=1738914711-OPT57VEbMc5D35FzGL86QZgK1qxafUD0-0-42da9199cba085b9c16d88cbef089ce7)
在浏览器中运行,当输入内容时不会同步更新,如图2.46所示。当输入框失去焦点时,数据才会被更新,如图2.47所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P64_7355.jpg?sign=1738914711-Ggbo2ZPc28N0ivB1cfjuzNcnJIaplZ34-0-ee03c07facab7ff619eac0ad4e2b471e)
图2.46 输入数据
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P64_7358.jpg?sign=1738914711-DFymdy0m3bLkI80K6n3U06LN4Rv7ICfK-0-82517735bc7aa67c75451f9cb3a4c723)
图2.47 失去焦点时才更新数据
2.number修饰符
输入框默认输入的值为String类型,使用number修饰符可以将输入的值转化为Number类型,该修饰符经常使用在数字输入框中。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P64_26608.jpg?sign=1738914711-QSzI9jUDcNlHFkVNER8FDD9boHjeRkJx-0-2133c3dd2c8eae7ba9236d9b2cc82525)
在浏览器中运行,输入框的默认值为String类型,如图2.48所示。当输入数字时,值的类型会被转化为Number类型,如图2.49所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P65_7433.jpg?sign=1738914711-WFSx0QPzLJRztuX7z1DWB8jb62GWjSej-0-1c7d0e5ace418a055355e7560cd9a32f)
图2.48 输入框的默认值类型
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P65_7436.jpg?sign=1738914711-jsfC7SktCSTY1qDcSFQjyqfMoVhdBGQH-0-04b1d81bc99c0f798404f29def645845)
图2.49 值的类型被转化为Number类型
3.trim修饰符
如果要自动过滤用户输入内容的首尾空格,可以给v-model添加trim修饰符。
index.html文件代码如下:
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P65_26610.jpg?sign=1738914711-iEA8zGV1I2lLyAoGyN7WoWoRNSyYi55i-0-cbe270a67065ccd1c6a47b6a63863884)
在浏览器中运行的效果如图2.50所示。
![](https://epubservercos.yuewen.com/85E887/23721628409520006/epubprivate/OEBPS/Images/Figure-P65_7492.jpg?sign=1738914711-m9VhVv6FcTJkbyA2923AoxT8IYsqUmfT-0-fa2c702e804e5dca3973f60bfe551f93)
图2.50 trim修饰符效果