Vue(八)——表单数据双向绑定
表单双向绑定:
- 绑定的数据能更新表单的值
- 表单的值能更新所绑定的数据
- 通过
v-model
指令来实现双向绑定 v-model
——监听用户的输入事件来更新数据
规则:
- 初始化——
v-model
会忽略所有表单元素的初始值而总是将 Vue 实例的数据data作为数据来源。 - 关联事件—
v-model
在内部为不同的输入元素使用不同的 属性并抛出不同的事件
表单类型 | 属性 | 事件 |
---|---|---|
text 、 textarea | value | input |
checkbox、radio | 默认checked,也可做value绑定 | change |
select | value | change |
注意事项:
- 在文本区域插值 (
<textarea>{{text}}</textarea>
) 并不会生效,应用v-model
来代替。 - 单个复选框
checkbox
可以绑定布尔值,自定义字符串类型;多个复选框可以绑定到数组 - 单选按钮
radio
可以绑定字符串 - 选择框
select
单选时绑定到字符串,设置多选multiple时可绑定到数组
实例:
<div id="app">
<!-- input text类型,当行文本-->
<input v-model.trim="message" type="text" />
<p>Message is:{{message}}saa</p>
<!-- input textarea类型,当行文本 -->
<textarea v-model="message2" cols="24" rows="4"></textarea>
<p>Message2 is:{{message2}}</p>
<!-- 复选框,绑定数组类型-->
<input type="checkbox" id="jack" value="jack" v-model="team" />
<label for="jack">Jack</label>
<input type="checkbox" id="Mark" value="Mark" v-model="team" />
<label for="Mark">Mark</label>
<input type="checkbox" id="Rondo" value="Rondo" v-model="team" />
<label for="Rondo">Rondo</label>
<input type="checkbox" id="Lucian" value="Lucian" v-model="team" />
<label for="Lucian">Lucian</label>
<p for="team">Now Team:{{team}}</p>
<!-- 复选框也可以绑定bool值,只需要数据在data里声明bool类型-->
<input type="checkbox" id="redis" value = "mmm" v-model="tech" />
<p for="team2">Now Tech:{{tech}}</p>
<!-- 复选框的值绑定也可以自定义,下面就定义了选中和没选中的两种值-->
<input
type="checkbox"
v-model="toggle"
true-value="yes"
false-value="no"
>
<p for="toggle">Now toggle:{{toggle}}</p>
<!-- 单选框 -->
<input type="radio" id="man" value="男" v-model="sex" />
<label for="man">男</label>
<input type="radio" id="woman" value="女" v-model="sex" />
<label for="woman">女</label>
<p for="person">Now Sex:{{sex}}</p>
<!-- 下拉框 -->
<!-- 单选 -->
<select name="" id="" v-model="answer">
<option disabled value="">请选择</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
<p for="answer">Now Answer:{{answer}}</p>
<!-- 多选 -->
<div id="example-6">
<select v-model="selected" multiple style="width: 50px;">
<option>A</option>
<option>B</option>
<option>C</option>
</select>
<br>
<span>Now multiple Answer: {{ selected }}</span>
</div>
<!-- 使用v-for创建select -->
<select v-model="todayfruit">
<option v-for="item in fruit" v-bind:value ="item.val">{{item.text}}</option>
</select>
<p>Fruit Now:{{todayfruit}}</p>
</div>
javascript
:
<script type="text/javascript">
var vm = new Vue({
el:"#app",
data:{
message:"赤红之瞳",
message2:"灵之风息",
team:[],
tech:false,
toggle:"",
sex:"",
answer:"",
selected:[],
fruit:[
{text:"香蕉",val:"banana"},
{text:"苹果",val:"apple"},
{text:"橘子",val:"orange"}
],
todayfruit:""
}
});
</script>
结果:
修饰符
.lazy
在默认情况下,v-model
在每次 input
事件触发后将输入框的值与数据进行同步 (除了上述输入法组合文字时)。你可以添加 lazy
修饰符,从而转为在 change
事件_之后_进行同步:
<!-- 在“change”时而非“input”时更新 -->
<input v-model.lazy="msg">
.number
如果想自动将用户的输入值转为数值类型,可以给 v-model
添加 number
修饰符:
<input v-model.number="age" type="number">
这通常很有用,因为即使在 type="number"
时,HTML 输入元素的值也总会返回字符串。如果这个值无法被 parseFloat()
解析,则会返回原始的值。
.trim
如果要自动过滤用户输入的首尾空白字符,可以给 v-model
添加 trim
修饰符:
<input v-model.trim="msg">
Vue(八)——表单数据双向绑定的更多相关文章
- vue.js的一些事件绑定和表单数据双向绑定
知识点: v-on:相当于: 例如:v-on:click==@click ,menthods事件绑定 v-on修饰符可以指定键盘事件 v-model进行表单数据的双向绑定 <template&g ...
- VUE JS 使用组件实现双向绑定
1.VUE 前端简单介绍 VUE JS是一个简洁的双向数据绑定框架,他的性能超过ANGULARJS,原因是实现的机制和ANGULARJS 不同,他在初始化时对数据增加了get和set方法,在数据se ...
- Angular11 模板表单、响应式表单(自定义验证器)、HTTP、表单元素双向绑定
1 模板表单 模型通过指令隐式创建 技巧01:需要在模块级别引入 FormsModule ,通常在共享模块中引入再导出,然后在需要用到 FormsModule 的模块中导入共享模块就可以啦 impor ...
- vue iview render里面 没有双向绑定 renderHeader 要序列化 反序列 一下
vue iview render里面 没有双向绑定 renderHeader 要序列化 反序列 一下 renderHeader: (h, params) => { return [ h('Rad ...
- vue 数组和对象的双向绑定不响应问题
对象和数组的数据类型是对象,对象是对象这个是毫无疑问的.数组可以把索引当成键名,把索引对应的元素当成该键名的键值. vue对象有些操作不能双向绑定的原因是vue未改变原对象,以及未给新增属性增加set ...
- vue 收集表单数据 (有错误的请各位大佬指点)
收集表单数据: 若: <input type="text"/>, 则v-model收集 的是value值,用户输入的就是value值. 若 ...
- vue v-model 表单控件绑定
v-model 指令在表单控件元素上创建双向数据绑定,下面一一进行示例解释. 1.v-model 双向绑定文本 <!DOCTYPE html> <html> <head ...
- vue.js--基础 数据的双向绑定
所谓双向绑定:就是改变modle,就会改变view,改变view,也会改变modle 下面案例,点击getMthod(),获取msg的内容,在点击setMthod()改变msg的内容,你会发现H1的值 ...
- Vue源码学习之双向绑定
首发地址:CJWbiu's Blog 原理: ‘当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.definePr ...
- VUE 入坑系列 一 双向绑定
html代码 <div id="app"> <p>{{message}}</p> <span>message1</span&g ...
随机推荐
- 基于Linux系统的PXE搭建方法
本文分享自天翼云开发者社区<基于Linux系统的PXE搭建方法>,作者:t***n 一.底层环境准备 1.安装RedHat7.6系统 2.关闭防火墙和Selinux systemctl s ...
- Flink Maven项目,依赖配置pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- telegraf、influxdb和grafana
1 telegrafTelegraf 是一个开源的服务器代理,用于收集.处理和发送数据.它是 InfluxData 公司推出的 TICK 堆栈(Telegraf.InfluxDB.Chronograf ...
- Luogu P8710 [蓝桥杯 2020 省 AB1] 网络分析 题解 [ 绿 ] [ 带权并查集 ]
原题 分析 本题由于从一个节点发信息,同一个集合内的所有点都会收到信息,显然是一道要求维护各节点间关系的题,因此采用并查集的数据结构进行求解. 但由于维护关系的同时还要维护权值,所以采用带权并查集,它 ...
- MOS管的寄生电容
我们经常看到,在电源电路中,功率MOS管的G极经常会串联一个小电阻,几欧姆到几十欧姆不等,那么这个电阻用什么作用呢? 这个电阻的作用有2个作用:限制G极电流,抑制振荡. 限制G极电流MOS管是由电压驱 ...
- TortoiseGit 在windows11 中使用,建议升级到 2.13.0版本以后
- Deepin 设置开机执行某sh文件
背景 deepin系统上部署了Geoserver,但是每次开机后都得手动过去起,麻烦,故想着找个办法解决下 过程 在/etc/systemd/system目录下新建一个 geoserver.servi ...
- Ansible - [02] 基础配置以及常用操作场景
Ansible 基础配置 主配置文件:/etc/ansible/ansible.cfg ansible配置文件查找顺序 首先检测ANSIBLE_CONFIG变量定义的配置 其次检查当前目录下的./an ...
- mysql 查询结果为空时值时执行后面的sql语句
sql server支持变量所以一般使用方法如下: DECLARE @Val varchar(50) select @Val = param_value where t_param where par ...
- 从文件到块: 提高 Hugging Face 存储效率
Hugging Face 在 Git LFS 仓库 中存储了超过 30 PB 的模型.数据集和 Spaces.由于 Git 在文件级别进行存储和版本控制,任何文件的修改都需要重新上传整个文件.这在 H ...