Vuejs第六篇之Vuejs与form元素实例解析


Posted in Javascript onSeptember 05, 2016

本文是小编结合官方文档整理的一篇细致代码更多更全的详细教程,非常适合新手学习,感兴趣的朋友一起看看吧!

资料来于官方文档:

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>

②添加参数:

Vuejs第六篇之Vuejs与form元素实例解析

【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第六篇之Vuejs与form元素实例解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS实现打开本地文件或文件夹
Mar 09 Javascript
js中数组(Array)的排序(sort)注意事项说明
Jan 24 Javascript
javascript 面向对象封装与继承
Nov 27 Javascript
JavaScript模拟push
Mar 06 Javascript
jstl中判断list中是否包含某个值的简单方法
Oct 14 Javascript
Javascript this 函数深入详解
Dec 13 Javascript
AngularJS之自定义服务详解(factory、service、provider)
Apr 14 Javascript
angularjs实现猜数字大小功能
May 20 Javascript
在vue项目中安装使用Mint-UI的方法
Dec 27 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
Apr 10 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
Jul 28 Javascript
Vue表单实例代码
Sep 05 #Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
Sep 05 #Javascript
JS实现的手机端精简幻灯片效果
Sep 05 #Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
Sep 05 #Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
Sep 05 #Javascript
AngularJS实现标签页的两种方式
Sep 05 #Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
Sep 05 #Javascript
You might like
PHP实现分页的一个示例
2006/10/09 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
JavaScript下的时间格式处理函数Date.prototype.format
2016/01/27 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
python的id()函数解密过程
2012/12/25 Python
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
乐天旅游台湾网站:Rakuten Travel TW
2017/06/01 全球购物
第二层交换机和路由器的区别?第三层交换机和路由器的区别?
2013/05/23 面试题
办公用房租赁协议书
2014/11/29 职场文书
成本会计岗位职责
2015/02/03 职场文书
英语导游词
2015/02/13 职场文书
教师思想工作总结2015
2015/05/13 职场文书
对学校的意见和建议
2015/06/04 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers