vue的表单的简单介绍 input radio checkbox等表单特性
在vue中我们可以通过v-model来为表单元素实现双向绑定
1:v-model指令
数据的双向绑定
双向绑定是说我们不仅仅可以通过数据(M)的改变去影响视图(V),还是当视图的内容改变(V)去影响模型中的数据(M)
通常来说双绑定应用在表单中比较多
指令: vue对html元素拓展是一些属性名称(自定义属性名称)
Vue指令有个特点,都是以v-开头的
V-model,它提供了一个js环境,在他的属性之中我们可以使用js(vue实例化对象)中的变量,将表单元素的值与vue实例化对象中是数据属性同步,实现视图到模型中的数据的一个绑定,因此在表单元素上添加了v-model就实现一种双向绑定
<div id="app">
<input type="text" v-model="msg">
<h1>{{msg }}</h1>
</div>
var myData = {
// 插入的文本
msg: ''
};
// 创建vue对象
var app = new Vue({
el: '#app',
data: myData
})
//实现了input输入内容和h1的双向绑定
2:单选或者多选
它不允许我们输入,只允许我们点击是否被选中
元素属性(checked)的优先级要高于vue实例化对象中数据属性值(适用于所有表单元素)
(1)多选
将checkbox的值写入一个变量中,变量中的每一个属性对应一个checkbox的值
当值是false,多选框不会被选中
注意:在判断值会做类型转换(0 ‘’, null, undefined, NaN, false)都是false
当值是true,多选框会被选中
Eg:
<label>S<input type="checkbox" v-model="size.S"></label>
<label>M <input type="checkbox" v-model="size.M" ></label>
<label>L <input type="checkbox" v-model="size.L"></label>
<label><input type="checkbox" v-model="size.XL" v-bind:true-value="big" v-bind:false-value="'small'"></label> //'small'是字符串 big变量
<p>{{size | json}}</p> //json对象数据转化成一个json字符串
var app = new Vue({
el: 'div',
data: {
size: {
S: false,
M: false,
L: '',
XL: '' //// 我们希望XL不是一个boolean值
}
},
computed: {
big: function () {
return 'is big'
}
}
})
当选框框值不想设置为boolean的时候,我们可以通过绑定true-value和false-value来定义
V-bind:true-value 选中时候的值
V-bind:false-value 没有选中时候的值
如果值是变量会去vue实例化对象中寻找数据(包含动态数据(优先)对象或者静态数据对象)
(2)单选
定义单选时候,我们要添加统一的同一个变量名称,这个变量会保存单选的选中元素。
单选要设置value值,这里的值会保留v-model的变量属性中
<label>男<input type="radio" v-model="sex" value="man" ></label>
<label>女<input type="radio" v-model="sex" value="woman"></label>
<p>{{sex}}</p>
var app = new Vue({
el: 'div',
data: {
sex: '' //未选中任何。为空
//man 默认选中man
}
})
(3)下拉框
在vue中定义下拉框,在select上多了一个v-model属性
如果想实现多选,select添加multiple属性
可以为option添加value属性,此时选中该选项的时候,获取的值就是value,如果不设置value默认使用的是option中的内容值
设置默认选中时,我们可以通过在vue实例化对象中绑定数据中定义,
如果是单选直接写上单选的值 email: ‘126’
如果是多选,我们可以将这些值写在一个数组中 email: [126,'sina']
vue中下拉框中每个选项是重复的,可以通过v-for来动态的渲染元素
Eg:
<p>{{email}}</p>
<select v-model="email" >
<option value="126">@126.com</option>
<option value="163">@163.com</option>
</select>
var app = new Vue({
el: 'div',
data: {
// 表示下拉框中选中的元素的值
email: ‘’
}
})
Eg;
<select v-model="email">
<option v-for="item in emails" value="item">
<template v-if="item == 'yeah'">@{{item}}.net</template>
<template v-if="item != 'yeah'">@{{item}}.com</template>
</option>
</select>
emails: [126, 163, 'sina', 'sohu', 'yeah', 139]
Eg:
<select v-model="email">
<option v-for="item in emails" selected="{{item.checked}}">
<template v-if="item == 'yeah'">@{{item.value}}.net</template>
<template v-if="item != 'yeah'">@{{item.value}}.com</template>
</option>
</select>
emails: [
{
value: 163,
checked: false
},
{
// 默认'sina'是被选中
value: 'sina',
checked: true
},
{
value: 'sohu',
checked: false
}
]
3:表单元素的特性
debounce 当输入完毕等待参数值时候,再进行数据的绑定。单位是毫秒
Lazy 做了失去焦点操作,当表单元素失去焦点时候,才会做数据的绑定
1<input type="text" debounce="1000" v-model="msg">
2<input type="text" lazy v-model="msg">
vue的表单的简单介绍 input radio checkbox等表单特性的更多相关文章
- Vue中的双向数据绑定简单介绍
1. 文本框绑定v-module <div id="app"> <input type="text" v-model="msg&qu ...
- 表单复选框input[type="checkbox"]
<!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...
- jquery 获取input radio/checkbox 的值 【注意写法】
今天,在用jquery获取页面上radio值的时候,radio给出了默认值,但是无论如何修改值,radio始终是默认值,去掉默认值的时候,页面上又报出了undefined的错误.经过几番搜索,发现不同 ...
- Jquery操作radio,checkbox,select表单操作实现代码
一 .Select jQuery获取Select选择的Text和Value: 1. $("#select_id").change(function(){//code...}); / ...
- css 更改input radio checkbox的样式
html <label> <input type="checkbox" class="colored-blue"> <span c ...
- vue之node.js的简单介绍
一.什么是node.js? 它是可以运行JavaScript的服务平台,可以吧它当做一门后端程序,只是它的开发语言是JavaScript 二.安装 1.node.js的特性: - 非阻塞IO模型 - ...
- vue学习【第三篇】:vue之node.js的简单介绍
什么是node.js 它是可以运行JavaScript的服务平台,可以吧它当做一门后端程序,只是它的开发语言是JavaScript 安装node.js node.js的特性 - 非阻塞IO模型 - 时 ...
- vue之 node.js 的简单介绍
一.什么是 node.js? 它是可以运行在JavaScript的服务平台 二.安装 1.node.js的特性 - 非阻塞IO模型 - 时间驱动 2.运用场景 - 高并发低业务 - 实时场景 - 聊天 ...
- 设置input(radio,checkbox)和lable对齐的问题
在做页面的时候几次遇到label和前面的小图标无法对齐的情况,后来发现解决方法不过是 label { display:inline-block; vertical-align:top; line-he ...
随机推荐
- 【linux】如何解决VMWare上linux虚拟机连不上外网的问题?
>>>故障现象:虚拟机连接不到外网? >>>故障背景: Centos7.4发行版本: 虚拟机和VM软件都是nat模式: 注意这里默认的VMWare的DHCP服务时开 ...
- 我与0xc000007b奋斗的日子
自从新换了一台笔记本,就开始重装各种软件,就在将要开始软工课设的重要的日子里,我默默地在运行客户端时出现了一个这样的错误: 鉴于本人很废柴,自然不可能去查内存,所以开始各种度娘必应和谷歌,哦!原来应该 ...
- 【Python】- yield 使用浅析
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ? 我们先抛开 generator,以一个常见的编程题目来展示 yield ...
- 【Luogu】P4103大工程(虚树DP)
题目链接 我貌似发现这类DP就是先别管什么虚树……把树形DP搞出来套上虚树板子就好了 这个树形DP就是设sum为答案,sumd为子树内所有点的深度和(当然指的是被询问的点),maxi指子树内最深的点的 ...
- 【HDU 2594 Simpsons' Hidden Talents】
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- Linux机器-网卡磁盘监控
1)实时监控网卡流量的通用脚本: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...
- shortcut(NOIP模拟赛)(裸的排序)
原题: Description Mirek有一条每天从他家去大学工作的最喜欢的路.这个路径由若干个部分组成,且每个部分是10米长的直线.每一个部分是直线连接(没有拐弯)上一个部分或垂直连接上一个部分. ...
- 报告撰写,linux使用gimp简单做gif动图
我想把我的系统菜单完整记录下来,方便查看,如果单纯使用文字比较单调,使用屏幕截图,需要依次打开多个图像查看也不是很方便,就想到了使用动画的形式展示.由于本人的系统一直使用Linux系统,为了一张gif ...
- 【linux高级程序设计】(第十二章)Linux多线程编程 3
条件变量通信机制 条件变量必须配合互斥锁一起实现对资源的互斥访问 使用方法: int pthread_cond_init (pthread_cond_t *__restrict __cond, __c ...
- PostgreSQL(EXCEPT,INTERSECT)
except 可以查看表一对表二不一样的数据,有点像是对表一进行表一表二交集的反集的交集,好绕: intersect 可以查看表一和表二一样的数据,求交集: select t1.name,t1.age ...