版权声明:出处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的某个值);

如代码:

  1. <div id="app">
  2. <input type="text" v-model="text"/>
  3. <div>{{text}}</div>
  4. <div>——————————————</div>
  5. <textarea style="width:200px;height:100px;" v-model="textarea"></textarea>
  6. <div>{{textarea}}</div>
  7. <div>——————————————</div>
  8. <label><input type="checkbox" v-model="checkbox"/>左边选中右边则为true:{{checkbox}}</label>
  9. <div>——————————————</div>
  10. <label><input type="checkbox" value="firstCheckbox" v-model="checkboxes">firstCheckbox</label><br/>
  11. <label><input type="checkbox" value="secondCheckbox" v-model="checkboxes">secondCheckbox</label><br/>
  12. <label><input type="checkbox" value="thirdCheckbox" v-model="checkboxes">thirdCheckbox</label><br/>
  13. <div>以上选中的value情况为:{{checkboxes}}</div>
  14. <div>以上选中的value情况为(以json格式显示,这里使用了json过滤器):{{checkboxes|json}}</div>
  15. <div>——————————————</div>
  16. <label><input type="radio" value="A" v-model="radio"/>value = A</label><br>
  17. <label><input type="radio" value="B" v-model="radio"/>value = B</label><br>
  18. <div>{{radio}}</div>
  19. <div>注意,这里的v-model的值应该被注册到data里面,否则会红字警告(事实上,所有的都应该也这么做)</div>
  20. <div>——————————————</div>
  21. <select v-model="select">
  22. <option>默认值,option不设value</option>
  23. <option value="B">value的值设为B</option>
  24. <option selected value="C">默认选择这个,value设为C</option>
  25. </select>
  26. <div>{{select}}</div>
  27. <div>同样,这里不注册也会被报错</div>
  28. <div>——————————————</div>
  29. <div>以下是select的多选,按住ctrl可以连续选,按住shift选择区间</div>
  30. <select style="width:200px;height:100px;overflow: hidden;" v-model="multiple" multiple>
  31. <option value="A">A</option>
  32. <option value="B">B</option>
  33. <option value="C">C</option>
  34. <option value="D">D</option>
  35. <option value="E">E</option>
  36. </select>
  37. <div>多选选中的值是:{{multiple}}</div>
  38. <div>注意,这个多选select框是默认带y轴的滚动条的</div>
  39. <div>——————————————</div>
  40. <div>动态渲染,checkbox和多选select框是互相影响的</div>
  41. <label><input type="checkbox" value="A" v-model="Dynamic">A</label><br/>
  42. <label><input type="checkbox" value="B" v-model="Dynamic">B</label><br/>
  43. <label><input type="checkbox" value="C" v-model="Dynamic">C</label><br/>
  44. <select style="width:200px;height:100px;overflow: hidden;" v-model="Dynamic" multiple>
  45. <option value="A">A</option>
  46. <option value="B">B</option>
  47. <option value="C">C</option>
  48. </select>
  49. <div>选中情况是:{{Dynamic}}</div>
  50. <div>——————————————</div>
  51. <div>选中和选中的值自定义的checkbox</div>
  52. <label><input type="checkbox" v-bind:true-value="differentValues.t" v-bind:false-value="differentValues.f"
  53. v-model="different">true/false</label><br/>
  54. <div>different value: {{different}}</div>
  55. <div>注意,以上不能像普通checkbox那么样,用一个数组作为多个checkbox的v-model的变量,且其值是绑定与vm实例的某个属性;
  56. 因此,不能在v-bind里的值是一个字符串,但可以是一个对象,例如{a:1}这样(当然,这个时候显示的值也是一个对象了)
  57. </div>
  58. <div>——————————————</div>
  59. <div>自定义之的radio</div>
  60. <label><input type="radio" v-bind:value="text" v-model="customize"/>值为1</label>
  61. <label><input type="radio" v-bind:value="textarea" v-model="customize"/>值为1</label>
  62. <div>{{customize}}</div>
  63. <div>同样,值可以是vm的一个属性或者是一个对象,另外,同样有效的还有select。(主要就这三个有选中状态,除此之外虽然例如Date类型也有选中,但是意义不大)</div>
  64. <div>——————————————</div>
  65. </div>
  66. <script>
  67. var vm = new Vue({
  68. el: '#app',
  69. data: {
  70. text: "默认有输入内容",
  71. textarea: "这里是多行文字\n第二行,\\n是换行符,但在字符串里显示为空格",
  72. checkboxes: [],
  73. radio: "",
  74. select: "",
  75. multiple: "",
  76. Dynamic: {},
  77. different: "",
  78. differentValues: {
  79. t: "true",
  80. f: "false"
  81. },
  82. customize: ''
  83. }
  84. })
  85. </script>

②添加参数:

参数

说明

lazy

非实时更新,而是focus状态结束后更新

number

将值自动转为number类型输出

debounce

延迟若干毫秒再更新数值

【1】lazy

在取消focus状态后才更新值,而不是按键按下时就更新值。

对文本输入框和textarea都有效

如代码:

  1. <input type="text" v-model="text" lazy/>
  2. <div>{{text}}</div>

【2】number

将输入的值自动转为number类型,如果转后为NaN类型,则返回原值;

如代码:

  1. <input type="text" v-model="text" number/>
  2. <div>{{text}}</div>
  3. <div>{{typeof text}}</div>

如果加上number这个参数,那么输入数字时,则提示类型为string,加上之后,纯数字会提示number类型;

【3】debounce=”毫秒数”

当值连续若干毫秒没有变化时,触发变量的值的改变;

如代码:

  1. <input type="text" v-model="text" debounce="1000"/>
  2. <div>{{text}}</div>

当我以500ms的时间差依次输入1,2,3,4,5,6这六个数字时,text的值不会被更新;

当我停止输入有1000ms时,text值才会被更新;

因此,适合类似ajax等高消耗操作。

Vuejs——(6)Vuejs与form元素的更多相关文章

  1. 了解HTML表单之form元素

    前面的话 表单是网页与用户的交互工具,由一个<form>元素作为容器构成,封装其他任何数量的表单控件,还有其他任何<body>元素里可用的标签 表单能够包含<input& ...

  2. HTML(七)HTML 表单(form元素介绍,input元素的常用type类型,input元素的常用属性)

    前言 表单是网页与用户的交互工具,由一个<form>元素作为容器构成,封装其他任何数量的表单控件,还有其他任何<body>元素里可用的标签 表单能够包含<input> ...

  3. Form元素与字体

    前言 以前写代码的时候总是喜欢在body元素中写字体属性,用以控制全局字体样式,后来发现表单元素中的字体样式并不能被控制,郁闷的不行. 解决方法 因为表单元素无法继承body的字体属性,所以要单独设置 ...

  4. html5--3.1 form元素

    html5--3.1 form元素 学习要点 form元素及其属性 form元素 用来定义一个表单,是建立表单的基础元素,(就类似定义表格的table) 表单的其他元素包含在form元素中,其主要子元 ...

  5. VueJs(2)---VueJs开发环境的搭建和讲解index.html如何被渲染

    VueJs开发环境的搭建和讲解初始框架 有关如何搭建vue.js框架我这看了一篇文章,自己也根据它进行搭建环境. 文章地址:vue.js2.0实战(1):搭建开发环境及构建项目 接下来对初始的框架进行 ...

  6. 【VueJS】VueJS开发请求本地json数据的配置

    VueJS开发请求本地json数据的配置,旧版本是build/dev-server.js,新版本是build/webpack.dev.conf.js. VueJS开发请求本地json数据的配置,早期的 ...

  7. 阻止form元素内的input标签回车提交表单

    <form></form>标签内input元素回车会默认提交表单. 阻止回车默认提交表单: $('form').on('keydown', function (event) { ...

  8. js获取form元素,不使用id

    <form method="post" name="form"> <input type="text" name=&quo ...

  9. Form元素示例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. Dubbo源码阅读顺序

    转载: https://blog.csdn.net/heroqiang/article/details/85340958 Dubbo源码解析之配置解析篇,主要内容是<dubbo:service/ ...

  2. linux 查看端口被占用

    linux 查看端口被占用 1.lsof  -i : 端口号 用于查看某一端口的占用情况,比如查看8080端口使用情况,lsof  -i:8080 如果执行 lsof  -i:8080 系统提示 :  ...

  3. 【学习】数据处理基础知识(汇总和计算描述统计)【pandas】

    pd对象拥有一组常用的数学和统计方法.大部分都属于约简和汇总统计,用于从Series中单个值,如sum 和 mean 或从DF的行或列中提取一个Series. 1. 描述和汇总统计方法 #汇总和计算描 ...

  4. linux面试题-基础题1

    第1章 基础题1 1.1 在装系统创建Linux分区时,一般至少需要创建两个分区( ) A.FAT.NTFS   B. /usr.swap    C. /boot.swap  D.swap./ 1.2 ...

  5. ActiveMQ(1)---初识ActiveMQ

    消息中间件的初步认识 什么是消息中间件? 消息中间件是值利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,可以在分布式架构下扩展进 ...

  6. Android Room 学习(一)

    Room简介 Room persistence库为SQLite提供了一个抽象层,以便在利用SQLite的全部功能的同时实现更强大的数据库访问. 该库可帮助您在运行应用程序的设备上创建应用程序数据的缓存 ...

  7. 【原】The Linux Command Line - Workiing with commands

    ● type – Indicate how a command name is interpreted● which – Display which executable program will b ...

  8. linux shell并发执行命令

    一般我们在linux上十一shell命令的批量执行操作,一般使用for或者while 循环进行操作,但是这样有一个问题,for或者while本质上是串行的,并不能,如果某一个命令执行耗费的时间比较长, ...

  9. springmvc 怎么响应json数据

    springmvc 怎么响应json数据@Controller@RequestMapping("/items") class ItemsController{  @RequestM ...

  10. [Ting's笔记Day5]在部署到Heroku之前,将Rails项目从SQLite设定为PostgreSQL

    前情提要: Paas(平台及服务)公司Heroku是个可以把我们写好的App部署到网际网络的好地方.而本篇是我从自己的上一篇文章:将Ruby on Rails项目部署到Heroku遇到的问题,当时困扰 ...