1. 基础用法

  v-model 指令:在表单 input 和 textarea 元素上创建双向数据绑定。

1.1 单行文本(Text)

<div id="app">
<input type="text" v-model="name">
<p>name:{{ name }}</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
name: "LiBing"
}
});
</script>

1.2 多行文本(Multiple Text)

<div id="app">
<textarea v-model="remark"></textarea>
<p>remark{{ remark }}</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
remark: "备注"
}
});
</script>

注:在 textarea 中插值(<textarea>{{text}}</textarea>)并不会生效。使用 v-model 来替代。

1.3 复选框(checkbox)

  单选 checkbox,绑定到布尔值。

<div id="app">
<input type="checkbox" id="chkIsDefault" v-model="isDefault"/>
<label for="chkIsDefault">{{ isDefault ? "是" : "否" }}</label>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
isDefault: true
}
});
</script>

  多选 checkbox,绑定到同一个数组。

<div id="app">
<template v-for="fruit in fruits">
<input type="checkbox" :id="fruit.id" :value="fruit.text" v-model="checkedFruits" />
<label :for="fruit.id">{{ fruit.text }}</label>
</template>
<div>选择的水果:{{ checkedFruits }}</div>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
fruits: [{
id: "apple",
text: "苹果"
},
{
id: "banana",
text: "香蕉"
},
{
id: "grape",
text: "葡萄"
}
],
checkedFruits: ["苹果"]
}
});
</script>

1.4 单选框(radio)

<div id="app">
<template v-for="fruit in fruits">
<input type="radio" :id="fruit.id" :value="fruit.text" v-model="checkedFruit" />
<label :for="fruit.id">{{ fruit.text }}</label>
</template>
<div>选择的水果:{{ checkedFruit }}</div>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
fruits: [{
id: "apple",
text: "苹果"
},
{
id: "banana",
text: "香蕉"
},
{
id: "grape",
text: "葡萄"
}
],
checkedFruit: "苹果"
}
});
</script>

1.5 下拉框(select)

1.5.1 单选select

<div id="app">
<select v-model="selected">
<option disabled>请选择</option>
<option v-for="option in options" v-bind:value="option.value">
{{ option.text }}
</option>
</select>
<div>选择项:{{ selected }}</div>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
selected: "1",
options: [{
text: "A",
value: "1"
},
{
text: "B",
value: "2"
},
{
text: "C",
value: "3"
}
]
}
});
</script>

1.5.2 多选select

<div id="app">
<select v-model="selected" multiple>
<option disabled>请选择</option>
<option v-for="option in options" v-bind:value="option.value">
{{ option.text }}
</option>
</select>
<div>选择项:{{ selected }}</div>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
selected: "1",
options: [{
text: "A",
value: "1"
},
{
text: "B",
value: "2"
},
{
text: "C",
value: "3"
}
]
}
});
</script>

2. 与value属性绑定

  对于 radio, checkbox 和 select 的 option 选项,通常可以将 v-model 与值是静态字符串的 value 属性关联。

2.1 checkbox

<div id="app">
<input type="checkbox" id="chkIsDefault" v-model="isDefault" true-value="true" false-value="false" />
<label for="chkIsDefault">{{ isDefault == "true" ? "是" : "否" }}</label>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
isDefault: "true"
}
});
</script>

3. 修饰符(modifiers)

3.1 .lazy

  默认情况下,v-model 会在每次 input 事件触发之后,将数据同步至 input 元素中(除了上述提到的输入法组合文字时不会)。

  可以添加 lazy 修饰符,从而转为在触发 change 事件后同步。

<div id="app">
<input type="text" v-model.lazy="title" />
<label>{{ title }}</label>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
title: "LiBing"
}
});
</script>

3.2 .number

<div id="app">
<input type="number" v-model.number="age" />
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
age: 10
}
});
</script>

3.3 .trim

  v-model.trim:自动过滤掉首尾空格

<div id="app">
<input type="text" v-model.trim="title" />
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
title: "LiBing"
}
});
</script>

Vue.js 2.x笔记:表单绑定(3)的更多相关文章

  1. MVC + Vue.js 初体验(实现表单操作)

    Vuejs http://cn.vuejs.org/ Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...

  2. js高级程序设计 笔记 --- 表单

    一,基础知识 在html中,表单是form元素,而在js中,表单对应的是HTMLFormElement类型,继承自HTMLElement,其独特的属性和方法有(常见): action:接收请求的URL ...

  3. 关于vue.js中v-model与表单控件的双向绑定。

    单选框:<input type="checkbox" id="checkbox" v-model="checked"><l ...

  4. Vue表单绑定(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)

    <!DOCTYPE html><html>    <head>        <meta charset="utf-8">      ...

  5. vue -- v-model 表单绑定

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. vue基础-动态样式&表单绑定&vue响应式原理

    动态样式 作用:使用声明式变量来控制class和style的值 语法: :class/:style 注意:尽可能不要把动态class和静态class一起使用,原因动态class起作用的时间会比较晚,需 ...

  7. 两万字Vue.js基础学习笔记

    Vue.js学习笔记 目录 Vue.js学习笔记 ES6语法 1.不一样的变量声明:const和let 2.模板字符串 3.箭头函数(Arrow Functions) 4. 函数的参数默认值 5.Sp ...

  8. vue.js 作一个用户表添加页面----初级

    使用vue.js 制作一个用户表添加页面,实际上是把原来需要使用js写的部分,改写成vue.js的格式 首先,想象一下,先做思考,我们要添加用户表,设涉及到哪些数据,一个是用户id,一个是用户名,一个 ...

  9. Vue基础-自定义事件的表单输入组件、自定义组件的 v-model

    Vue 测试版本:Vue.js v2.5.13 学习 Vue 的自定义事件的表单输入组件,觉得文档讲的不太细致,所以这里再细化一下: 如果不用 v-model,代码应该是这样: <myinput ...

  10. vue教程1-01 v-model 一般表单元素(input) 双向数据绑定

    vue教程1-01   v-model 一般表单元素(input) 双向数据绑定el:'#box',//这里放的是选择器.不然会不生效 <!DOCTYPE html> <html l ...

随机推荐

  1. SpringBoot是怎么在实例化时候将bean加载进入容器中

    之前写过的很多spring文章,都是基于应用方面的,这次的话,就带大家来一次对spring的源码追踪,看一看spring到底是怎么进行的初始化,如何创建的bean,相信很多刚刚接触spring的朋友, ...

  2. python3打开winodows文件问题

    1,解决办法 "C:\\Users\\Darkness-02\\Desktop\\test.txt" 多加一个反斜杠就行了 2,解决办法r"C:\Users\Darkne ...

  3. [Nodejs] node写个hello,world

    http 模块 与 hello world hello world let http = require("http"); http .createServer((request, ...

  4. C#中public、private、protected等关键字说明

    public 公有访问.不受任何限制.private 私有访问.只限于本类成员访问,子类,实例都不能访问.protected 保护访问.只限于本类和子类访问,实例不能访问.internal 内部访问. ...

  5. javascript中的typeof和类型判断

    typeof ECMAScript 有 5 种原始类型(primitive type),即 Undefined.Null.Boolean.Number 和 String.我们都知道可以使用typeof ...

  6. Eclipse中安装git后pull远程仓库出现错误解决方法

    该图中位置为false 在配置文件中添加如下语句 -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2

  7. Java 工厂模式(一)— 抽象工厂(Abstract Factory)模式

    一.抽象工厂模式介绍: 1.什么是抽象工厂模式: 抽象工厂模式是所有形态的工厂模式中最为抽象和最具有一般性的一种形态,抽象工厂模式向客户端提供一个接口,使得客户端在不知道具体产品的情类型的情况下,创建 ...

  8. 自己实现的typeOf函数1

    自己实现的typeOf函数:返回传入参数的类型 主要用于解决,js自带的typeof返回结果不精确:Ext JS中typeOf对字符串对象.元素节点.文本节点.空白文本节点判断并不准确的问题 js代码 ...

  9. 前端入门23-CSS预处理器(Less&Sass)

    声明 本篇内容梳理自以下几个来源: Github:smyhvae/web Bootstrap网站的 less 文档 Sass中文网 感谢大佬们的分享. 正文-CSS预处理(less&Sass) ...

  10. (六) Keras 模型保存和RNN简单应用

    视频学习来源 https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553 笔记 RNN用于图 ...