Vue表单及表单绑定方法


Posted in Javascript onSeptember 04, 2018

基础用法

可以用 v-model 指令在表单 <input> 及 <textarea> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。

注:

1.v-model 会忽略所有表单元素的 value、checked、selected 特性的初始值而总是将 Vue 实例的数据作为数据来源。你应该通过 JavaScript 在组件的 data 选项中声明初始值。

2.对于需要使用输入法 (如中文、日文、韩文等) 的语言,你会发现 v-model 不会在输入法组合文字过程中得到更新。如果你也想处理这个过程,请使用 input 事件。

输入框

案例1

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 输入框</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
 <p>input 元素:{{ message }}</p>
 <input v-model="message" placeholder="编辑我……">
 
 <p style="white-space: pre">textarea 元素:{{ message2 }}</p>
 <textarea v-model="message2" placeholder="多行文本输入……"></textarea>
</div>
 
<script>
new Vue({
 el: '#app',
 data: {
 message: 'you can try it ',
	message2: '多行语句\r\n welcome here'
 }
})
</script>
</body>
</html>

Vue表单及表单绑定方法

复选框

可以结合计算属性,输出自己想要的效果。

案例2:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 复选框</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
 <p>单个复选框:</p>
 <input type="checkbox" id="checkbox" v-model="checked">
 <label for="checkbox">{{ isClick }}</label>
	
 <p>多个复选框:</p>
 <input type="checkbox" id="baidu" value="Baidu" v-model="checkedNames">
 <label for="baidu">Baidu</label>
 <input type="checkbox" id="google" value="Google" v-model="checkedNames">
 <label for="google">Google</label>
 <input type="checkbox" id="taobao" value="Taobao" v-model="checkedNames">
 <label for="taobao">taobao</label>
 <br>
 <span>选择的值为: {{ checkedNames }}</span>
</div>
 
 
<script>
new Vue({
 el: '#app',
 data: {
	checked : false,
 checkedNames: []
 },
	computed:{
		isClick:function(){
			return this.checked?"you clicked me ":"you not cleck me"
		}
	}
})
</script>
</body>
</html>

Vue表单及表单绑定方法

单选按钮

以下实例中演示了单选按钮的双向数据绑定:

案例3

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 单选按钮</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
 <input type="radio" id="men" value="men" v-model="picked">
 <label for="men">男人</label>
 <br>
 <input type="radio" id="women" value="women" v-model="picked">
 <label for="women">女人</label>
 <br>
 <span>你喜欢: {{ finalChose }}({{picked}})</span>
</div>
 
<script>
new Vue({
 el: '#app',
 data: {
	picked : 'men'
 },
	computed:{
		finalChose:function(){
			return this.picked==='men'?"男人":"女人"
		}
	}
})
</script>
</body>
</html>

Vue表单及表单绑定方法

select 列表

以下实例中演示了下拉列表的双向数据绑定:

案例4

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - select 列表</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
 <select v-model="selected" name="fruit">
 <option value="" disabled >选择一种水果</option>
 <option value="banana">香蕉</option>
 <option value="apple">苹果</option>
 </select>
 
 <div id="output">
 选择的水果是: {{selected}}
 </div>
</div>
 
<script>
new Vue({
 el: '#app',
 data: {
	selected: '' 
 }
})
</script>
</body>
</html>

Vue表单及表单绑定方法

用 v-for 渲染的动态选项:

<meta charset="utf-8">
<title>Vue 测试实例 - select 列表</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
 <select v-model="selected" name="fruit" >
 <option v-for="option in options" v-bind:value="option.value" stype='width:400px'>
 {{option.text}}
 </option>
 </select>
 
 <div id="output">
 选择的水果是: {{selected}}
 </div>
</div>
 
<script>
new Vue({
 el: '#app',
 data: {
 selected: '',
 options:[
  {text:'选择一个水果',value:''},
  {text:'香蕉',value:'banana'},
  {text:'苹果',value:'apple'}
 ] 
 },
})
</script>
</body>
</html>

Vue表单及表单绑定方法

修饰符

.lazy

在默认情况下, v-model 在 input 事件中同步输入框的值与数据,但你可以添加一个修饰符 lazy ,从而转变为在 change 事件中同步:

<!-- 在 "change" 而不是 "input" 事件中更新 -->
<input v-model.lazy="msg" >

.number

如果想自动将用户的输入值转为 Number 类型(如果原值的转换结果为 NaN 则返回原值),可以添加一个修饰符 number 给 v-model 来处理输入值:

<input v-model.number="age" type="number">

这通常很有用,因为在 type="number" 时 HTML 中输入的值也总是会返回字符串类型。

.trim

如果要自动过滤用户输入的首尾空格,可以添加 trim 修饰符到 v-model 上过滤输入:

<input v-model.trim="msg">

以上这篇Vue表单及表单绑定方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
fckeditor 获取文本框值的实现代码
Feb 09 Javascript
JS实现下拉框的动态添加(附效果)
Apr 03 Javascript
jQuery中replaceWith()方法用法实例
Dec 25 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
Mar 30 Javascript
jQuery实现简单的列表式导航菜单效果代码
Aug 31 Javascript
详解jQuery lazyload 懒加载
Dec 19 Javascript
vue.js利用Object.defineProperty实现双向绑定
Mar 09 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
Jun 29 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
Dec 28 Javascript
页面点击小红心js实现代码
May 26 Javascript
详解ES6中的 Set Map 数据结构学习总结
Nov 06 Javascript
vue实现的下拉框功能示例
Jan 29 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 #Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 #jQuery
vue做移动端适配最佳解决方案(亲测有效)
Sep 04 #Javascript
基于element-ui的rules中正则表达式
Sep 04 #Javascript
微信小程序的部署方法步骤
Sep 04 #Javascript
vue2中使用sass并配置全局的sass样式变量的方法
Sep 04 #Javascript
Element UI 自定义正则表达式验证方法
Sep 04 #Javascript
You might like
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
利用Python获取操作系统信息实例
2016/09/02 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
python简单实现操作Mysql数据库
2018/01/29 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
python 爬取马蜂窝景点翻页文字评论的实现
2020/01/20 Python
Python通过文本和图片生成词云图
2020/05/21 Python
浅析Python中字符串的intern机制
2020/10/03 Python
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
人力资源管理专业应届生求职信
2013/09/28 职场文书
经济系大学生求职信
2013/10/01 职场文书
电气工程师岗位职责
2014/01/01 职场文书
赡养老人协议书
2014/04/21 职场文书
文明寝室申报材料
2014/05/12 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
2015年公务员工作总结
2015/04/24 职场文书
图书馆义工感想
2015/08/07 职场文书
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP