Vue.js 2.x笔记:表单绑定(3)
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)的更多相关文章
- MVC + Vue.js 初体验(实现表单操作)
Vuejs http://cn.vuejs.org/ Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...
- js高级程序设计 笔记 --- 表单
一,基础知识 在html中,表单是form元素,而在js中,表单对应的是HTMLFormElement类型,继承自HTMLElement,其独特的属性和方法有(常见): action:接收请求的URL ...
- 关于vue.js中v-model与表单控件的双向绑定。
单选框:<input type="checkbox" id="checkbox" v-model="checked"><l ...
- Vue表单绑定(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- vue -- v-model 表单绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue基础-动态样式&表单绑定&vue响应式原理
动态样式 作用:使用声明式变量来控制class和style的值 语法: :class/:style 注意:尽可能不要把动态class和静态class一起使用,原因动态class起作用的时间会比较晚,需 ...
- 两万字Vue.js基础学习笔记
Vue.js学习笔记 目录 Vue.js学习笔记 ES6语法 1.不一样的变量声明:const和let 2.模板字符串 3.箭头函数(Arrow Functions) 4. 函数的参数默认值 5.Sp ...
- vue.js 作一个用户表添加页面----初级
使用vue.js 制作一个用户表添加页面,实际上是把原来需要使用js写的部分,改写成vue.js的格式 首先,想象一下,先做思考,我们要添加用户表,设涉及到哪些数据,一个是用户id,一个是用户名,一个 ...
- Vue基础-自定义事件的表单输入组件、自定义组件的 v-model
Vue 测试版本:Vue.js v2.5.13 学习 Vue 的自定义事件的表单输入组件,觉得文档讲的不太细致,所以这里再细化一下: 如果不用 v-model,代码应该是这样: <myinput ...
- vue教程1-01 v-model 一般表单元素(input) 双向数据绑定
vue教程1-01 v-model 一般表单元素(input) 双向数据绑定el:'#box',//这里放的是选择器.不然会不生效 <!DOCTYPE html> <html l ...
随机推荐
- 『练手』003 Laura.SqlForever如何扩展 兼容更多数据库引擎
003 Laura.SqlForever如何扩展 兼容更多数据库引擎 数据库引擎插件 在 界面上的体现 导航窗体 的 工具栏 中的 引擎下拉列表 导航窗体 的 树形控件 中的 引擎主节 ...
- Netty源码 服务端的启动
最近一直在看netty,看完之后就想做点笔记.可是实在是太忙了,挤了还要几个晚上终于挤出来了 上图是服务端的实例代码.大致的流程先梳理一遍. 首先会执行 用于创建两个线程组,boosGroup用于接受 ...
- 105 - kube-scheduler源码分析 - predicate算法注册
一.predicate注册过程 今天我们来聊聊predicate函数是怎么被注册进去的,也就是要执行的一堆predicate是怎么成为“选中的孩子”. 代码位置:pkg/scheduler/fact ...
- Prism定制Region控件
并不是所有控件都可以被用作Region了吗?我们将Gird块的代码变成这样: <Grid> <ContentControl prism:RegionManager.RegionNam ...
- 简简单单的Vue1(MVVM与Vue的双向绑定原理)
既然选择了远方,便只顾风雨兼程 __ HANS许 系列:零基础搭建前后端分离项目 系列:零基础搭建前后端分离项目 Vue 在此之前的文章我们讲述了前端开发的工具,语言的知识,接下来我们从头开始学习一个 ...
- python迭代器与生成器及yield
一.迭代器(itertor) 1.可迭代: 在Python中如果一个对象有__iter__()方法或__getitem__()方法,则称这个对象是可迭代的(iterable). 其中__iter__( ...
- webpack4.x笔记-配置基本的前端开发环境(一)
webpack的基本使用 webpack 本质上是一个打包工具,它会根据代码的内容解析模块依赖,帮助我们把多个模块的代码打包.借用 webpack 官网的图片: 虽然webpack4.x的版本可以零配 ...
- SVN的使用说明
SVN管理版本是比较好的东西,但是我的SVN图标老是不出来,有时候莫名其妙就没有了,所以记录一下处理办法: 1.右键->TortoiseSVN->Settings->Icon Ove ...
- java:nextInt()和nextLine()一起使用出错
今天遇到一个很奇怪的事情,日常刷题中,遇到一个很简单的题: (不想看我多逼逼只想知道为什么会出错看最后) 题目: 题目描述 description 现有有N个学生的数据记录,每个记录包括学号.姓名.三 ...
- JVM内存结构,运行机制
三月十号,白天出去有事情出去了一天,晚上刚到食堂就接到阿里电话, 紧张到不行,很多基础的问题都不知道从哪里说了orz: 其中关于JVM内存结构,运行机制,自己笔记里面有总结的,可当天还是一下子说不出来 ...