表单双向绑定:

  1. 绑定的数据能更新表单的值
  2. 表单的值能更新所绑定的数据
  • 通过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(八)——表单数据双向绑定的更多相关文章

  1. vue.js的一些事件绑定和表单数据双向绑定

    知识点: v-on:相当于: 例如:v-on:click==@click ,menthods事件绑定 v-on修饰符可以指定键盘事件 v-model进行表单数据的双向绑定 <template&g ...

  2. VUE JS 使用组件实现双向绑定

    1.VUE 前端简单介绍  VUE JS是一个简洁的双向数据绑定框架,他的性能超过ANGULARJS,原因是实现的机制和ANGULARJS 不同,他在初始化时对数据增加了get和set方法,在数据se ...

  3. Angular11 模板表单、响应式表单(自定义验证器)、HTTP、表单元素双向绑定

    1 模板表单 模型通过指令隐式创建 技巧01:需要在模块级别引入 FormsModule ,通常在共享模块中引入再导出,然后在需要用到 FormsModule 的模块中导入共享模块就可以啦 impor ...

  4. vue iview render里面 没有双向绑定 renderHeader 要序列化 反序列 一下

    vue iview render里面 没有双向绑定 renderHeader 要序列化 反序列 一下 renderHeader: (h, params) => { return [ h('Rad ...

  5. vue 数组和对象的双向绑定不响应问题

    对象和数组的数据类型是对象,对象是对象这个是毫无疑问的.数组可以把索引当成键名,把索引对应的元素当成该键名的键值. vue对象有些操作不能双向绑定的原因是vue未改变原对象,以及未给新增属性增加set ...

  6. vue 收集表单数据 (有错误的请各位大佬指点)

     收集表单数据:        若: <input type="text"/>, 则v-model收集 的是value值,用户输入的就是value值.        若 ...

  7. vue v-model 表单控件绑定

    v-model 指令在表单控件元素上创建双向数据绑定,下面一一进行示例解释. 1.v-model 双向绑定文本 <!DOCTYPE html> <html> <head ...

  8. vue.js--基础 数据的双向绑定

    所谓双向绑定:就是改变modle,就会改变view,改变view,也会改变modle 下面案例,点击getMthod(),获取msg的内容,在点击setMthod()改变msg的内容,你会发现H1的值 ...

  9. Vue源码学习之双向绑定

    首发地址:CJWbiu's Blog 原理: ‘当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.definePr ...

  10. VUE 入坑系列 一 双向绑定

    html代码 <div id="app"> <p>{{message}}</p> <span>message1</span&g ...

随机推荐

  1. 基于Linux系统的PXE搭建方法

    本文分享自天翼云开发者社区<基于Linux系统的PXE搭建方法>,作者:t***n 一.底层环境准备 1.安装RedHat7.6系统 2.关闭防火墙和Selinux systemctl s ...

  2. Flink Maven项目,依赖配置pom.xml

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  3. telegraf、influxdb和grafana

    1 telegrafTelegraf 是一个开源的服务器代理,用于收集.处理和发送数据.它是 InfluxData 公司推出的 TICK 堆栈(Telegraf.InfluxDB.Chronograf ...

  4. Luogu P8710 [蓝桥杯 2020 省 AB1] 网络分析 题解 [ 绿 ] [ 带权并查集 ]

    原题 分析 本题由于从一个节点发信息,同一个集合内的所有点都会收到信息,显然是一道要求维护各节点间关系的题,因此采用并查集的数据结构进行求解. 但由于维护关系的同时还要维护权值,所以采用带权并查集,它 ...

  5. MOS管的寄生电容

    我们经常看到,在电源电路中,功率MOS管的G极经常会串联一个小电阻,几欧姆到几十欧姆不等,那么这个电阻用什么作用呢? 这个电阻的作用有2个作用:限制G极电流,抑制振荡. 限制G极电流MOS管是由电压驱 ...

  6. TortoiseGit 在windows11 中使用,建议升级到 2.13.0版本以后

  7. Deepin 设置开机执行某sh文件

    背景 deepin系统上部署了Geoserver,但是每次开机后都得手动过去起,麻烦,故想着找个办法解决下 过程 在/etc/systemd/system目录下新建一个 geoserver.servi ...

  8. Ansible - [02] 基础配置以及常用操作场景

    Ansible 基础配置 主配置文件:/etc/ansible/ansible.cfg ansible配置文件查找顺序 首先检测ANSIBLE_CONFIG变量定义的配置 其次检查当前目录下的./an ...

  9. mysql 查询结果为空时值时执行后面的sql语句

    sql server支持变量所以一般使用方法如下: DECLARE @Val varchar(50) select @Val = param_value where t_param where par ...

  10. 从文件到块: 提高 Hugging Face 存储效率

    Hugging Face 在 Git LFS 仓库 中存储了超过 30 PB 的模型.数据集和 Spaces.由于 Git 在文件级别进行存储和版本控制,任何文件的修改都需要重新上传整个文件.这在 H ...