Vuejs——(6)Vuejs与form元素
版权声明:出处http://blog.csdn.net/qq20004604
资料来于官方文档:
http://cn.vuejs.org/guide/forms.html
本文是在官方文档的基础上,更加细致的说明,代码更多更全。
简单来说,更适合新手阅读
(二十三)表单绑定
①常见绑定方法:
【1】文本输入框绑定;
【2】textarea绑定(类似【1】);
【3】radio选中值绑定;
【4】checkbox绑定(自动捆绑数组,无需name);
【5】select绑定;
【6】select multiple多选选中框绑定;
【7】动态绑定(以上不同类型但同一个值可以互动);
【8】checkbox选中和未选中赋予不同的值(主要是针对不选中状态);
【9】checkbox,radio,select选中状态的值动态绑定(主要是指值动态绑定对象或者是vm实例的属性,例如data里的某个属性,或者是computed的某个值);
如代码:
- <div id="app">
- <input type="text" v-model="text"/>
- <div>{{text}}</div>
- <div>——————————————</div>
- <textarea style="width:200px;height:100px;" v-model="textarea"></textarea>
- <div>{{textarea}}</div>
- <div>——————————————</div>
- <label><input type="checkbox" v-model="checkbox"/>左边选中右边则为true:{{checkbox}}</label>
- <div>——————————————</div>
- <label><input type="checkbox" value="firstCheckbox" v-model="checkboxes">firstCheckbox</label><br/>
- <label><input type="checkbox" value="secondCheckbox" v-model="checkboxes">secondCheckbox</label><br/>
- <label><input type="checkbox" value="thirdCheckbox" v-model="checkboxes">thirdCheckbox</label><br/>
- <div>以上选中的value情况为:{{checkboxes}}</div>
- <div>以上选中的value情况为(以json格式显示,这里使用了json过滤器):{{checkboxes|json}}</div>
- <div>——————————————</div>
- <label><input type="radio" value="A" v-model="radio"/>value = A</label><br>
- <label><input type="radio" value="B" v-model="radio"/>value = B</label><br>
- <div>{{radio}}</div>
- <div>注意,这里的v-model的值应该被注册到data里面,否则会红字警告(事实上,所有的都应该也这么做)</div>
- <div>——————————————</div>
- <select v-model="select">
- <option>默认值,option不设value</option>
- <option value="B">value的值设为B</option>
- <option selected value="C">默认选择这个,value设为C</option>
- </select>
- <div>{{select}}</div>
- <div>同样,这里不注册也会被报错</div>
- <div>——————————————</div>
- <div>以下是select的多选,按住ctrl可以连续选,按住shift选择区间</div>
- <select style="width:200px;height:100px;overflow: hidden;" v-model="multiple" multiple>
- <option value="A">A</option>
- <option value="B">B</option>
- <option value="C">C</option>
- <option value="D">D</option>
- <option value="E">E</option>
- </select>
- <div>多选选中的值是:{{multiple}}</div>
- <div>注意,这个多选select框是默认带y轴的滚动条的</div>
- <div>——————————————</div>
- <div>动态渲染,checkbox和多选select框是互相影响的</div>
- <label><input type="checkbox" value="A" v-model="Dynamic">A</label><br/>
- <label><input type="checkbox" value="B" v-model="Dynamic">B</label><br/>
- <label><input type="checkbox" value="C" v-model="Dynamic">C</label><br/>
- <select style="width:200px;height:100px;overflow: hidden;" v-model="Dynamic" multiple>
- <option value="A">A</option>
- <option value="B">B</option>
- <option value="C">C</option>
- </select>
- <div>选中情况是:{{Dynamic}}</div>
- <div>——————————————</div>
- <div>选中和选中的值自定义的checkbox</div>
- <label><input type="checkbox" v-bind:true-value="differentValues.t" v-bind:false-value="differentValues.f"
- v-model="different">true/false</label><br/>
- <div>different value: {{different}}</div>
- <div>注意,以上不能像普通checkbox那么样,用一个数组作为多个checkbox的v-model的变量,且其值是绑定与vm实例的某个属性;
- 因此,不能在v-bind里的值是一个字符串,但可以是一个对象,例如{a:1}这样(当然,这个时候显示的值也是一个对象了)
- </div>
- <div>——————————————</div>
- <div>自定义之的radio</div>
- <label><input type="radio" v-bind:value="text" v-model="customize"/>值为1</label>
- <label><input type="radio" v-bind:value="textarea" v-model="customize"/>值为1</label>
- <div>{{customize}}</div>
- <div>同样,值可以是vm的一个属性或者是一个对象,另外,同样有效的还有select。(主要就这三个有选中状态,除此之外虽然例如Date类型也有选中,但是意义不大)</div>
- <div>——————————————</div>
- </div>
- <script>
- var vm = new Vue({
- el: '#app',
- data: {
- text: "默认有输入内容",
- textarea: "这里是多行文字\n第二行,\\n是换行符,但在字符串里显示为空格",
- checkboxes: [],
- radio: "",
- select: "",
- multiple: "",
- Dynamic: {},
- different: "",
- differentValues: {
- t: "true",
- f: "false"
- },
- customize: ''
- }
- })
- </script>
②添加参数:
参数 |
说明 |
lazy |
非实时更新,而是focus状态结束后更新 |
number |
将值自动转为number类型输出 |
debounce |
延迟若干毫秒再更新数值 |
【1】lazy
在取消focus状态后才更新值,而不是按键按下时就更新值。
对文本输入框和textarea都有效
如代码:
- <input type="text" v-model="text" lazy/>
- <div>{{text}}</div>
【2】number
将输入的值自动转为number类型,如果转后为NaN类型,则返回原值;
如代码:
- <input type="text" v-model="text" number/>
- <div>{{text}}</div>
- <div>{{typeof text}}</div>
如果加上number这个参数,那么输入数字时,则提示类型为string,加上之后,纯数字会提示number类型;
【3】debounce=”毫秒数”
当值连续若干毫秒没有变化时,触发变量的值的改变;
如代码:
- <input type="text" v-model="text" debounce="1000"/>
- <div>{{text}}</div>
当我以500ms的时间差依次输入1,2,3,4,5,6这六个数字时,text的值不会被更新;
当我停止输入有1000ms时,text值才会被更新;
因此,适合类似ajax等高消耗操作。
Vuejs——(6)Vuejs与form元素的更多相关文章
- 了解HTML表单之form元素
前面的话 表单是网页与用户的交互工具,由一个<form>元素作为容器构成,封装其他任何数量的表单控件,还有其他任何<body>元素里可用的标签 表单能够包含<input& ...
- HTML(七)HTML 表单(form元素介绍,input元素的常用type类型,input元素的常用属性)
前言 表单是网页与用户的交互工具,由一个<form>元素作为容器构成,封装其他任何数量的表单控件,还有其他任何<body>元素里可用的标签 表单能够包含<input> ...
- Form元素与字体
前言 以前写代码的时候总是喜欢在body元素中写字体属性,用以控制全局字体样式,后来发现表单元素中的字体样式并不能被控制,郁闷的不行. 解决方法 因为表单元素无法继承body的字体属性,所以要单独设置 ...
- html5--3.1 form元素
html5--3.1 form元素 学习要点 form元素及其属性 form元素 用来定义一个表单,是建立表单的基础元素,(就类似定义表格的table) 表单的其他元素包含在form元素中,其主要子元 ...
- VueJs(2)---VueJs开发环境的搭建和讲解index.html如何被渲染
VueJs开发环境的搭建和讲解初始框架 有关如何搭建vue.js框架我这看了一篇文章,自己也根据它进行搭建环境. 文章地址:vue.js2.0实战(1):搭建开发环境及构建项目 接下来对初始的框架进行 ...
- 【VueJS】VueJS开发请求本地json数据的配置
VueJS开发请求本地json数据的配置,旧版本是build/dev-server.js,新版本是build/webpack.dev.conf.js. VueJS开发请求本地json数据的配置,早期的 ...
- 阻止form元素内的input标签回车提交表单
<form></form>标签内input元素回车会默认提交表单. 阻止回车默认提交表单: $('form').on('keydown', function (event) { ...
- js获取form元素,不使用id
<form method="post" name="form"> <input type="text" name=&quo ...
- Form元素示例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- uva-10670-贪心
题意:从N开始,目标是把数字变成M,每个代理有俩个操作,让数字减一或者变成一半,求最小的花费 能减半就减半. #include <string> #include<iostream& ...
- 第三方jar上传到Maven私服(Nexus)
mvn deploy:deploy-file -DgroupId=taobao-sdk -DartifactId=taobao-sdk-java -Dversion=1.0 -Dpackaging=j ...
- mac下安装cnpm淘宝镜像
cnpm:官网 (事先已经安装了node,有npm)查看官网,提示安装需运行命令:npm install -g cnpm --registry=https://registry.npm.taobao. ...
- 为datagrid、treegrid增加右键表头菜单,用于显示或隐藏列,注意:冻结列不在此菜单中
var createGridHeaderContextMenu = function(e, field) { e.preventDefault(); var grid = $(this);/* gri ...
- c++冒号作用
转自http://www.360doc.com/content/13/0605/11/3373961_290615318.shtml 1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bi ...
- 详细分析MySQL事务日志(redo log和undo log) 表明了为何mysql不会丢数据
innodb事务日志包括redo log和undo log.redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作. undo log不是redo log的逆向过程,其实它 ...
- OkHttp 同步异步操作
OkHttp是一个Java和Android的HTTP和HTTP/2的客户端,负责发送HTTP请求以及接受HTTP响应. 一.使用OkHttp OkHttp发送请求后,可以通过同步或异步地方式获取响应. ...
- MYSQL分组合并函数
MySQL中group_concat函数完整的语法如下:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符' ...
- C# Winform 跨线程更新UI控件常用方法汇总(多线程访问UI控件)
概述 C#Winform编程中,跨线程直接更新UI控件的做法是不正确的,会时常出现“线程间操作无效: 从不是创建控件的线程访问它”的异常.处理跨线程更新Winform UI控件常用的方法有4种:1. ...
- FortiGate日常检查
1.1)CPU利用率:由于防火墙有芯片,正常的流量都走芯片转发,不走cpu,只有开了utm相关的应用层防护功能和DDOS之类的,才会走cpu,所以一般cpu都不会占用太多,甚至很多时间都是0%, 如果 ...