版权声明:出处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. solr搜索

    安装过程: 原料:solr-4.10.3.tgz.tgz 1.1.1 安装步骤 单独一台虚拟机先全部删除:根目录:rm * -rf             cd /usr/local   \  rm ...

  2. 将LinkedHashMap转换为需要的对象

    项目中,在获取json数据转换为list类型以后,本来以为可以直接使用,结果在使用中报错“java.lang.ClassCastException: java.util.LinkedHashMap c ...

  3. [PHP]误读支付宝接口可能引发的乌龙

    ------------------------------------------------------------------------------------ 之所以发现这个坑,源起项目中的 ...

  4. 判断文件的唯一性--MD5

    JAVA中获取文件MD5值的四种方法   JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获 ...

  5. JAVA字符串类

    一.字符串类String1.String是一个类,位于java.lang包中2.创建一个字符串对象的2种方式: String 变量名=“值”; String 对象名=new String(“值”);3 ...

  6. SSM商城项目(九)

    1.   学习计划 1.Activemq整合springMQ的应用场景 2.添加商品同步索引库 3.商品详情页面动态展示 4.展示详情页面使用缓存 2.   Activemq整合spring 2.1. ...

  7. ORACLE查询内存溢出

    首先我们来看一个带排序的查询,点击工具栏的显示包含实际的执行计划. 1 SELECT * FROM AdventureWorks2008R2.Person.Person WHERE FirstName ...

  8. object references an unsaved transient instance save the transient instance before flushing

    object references an unsaved transient instance save the transient instance before flushing 对象引用未保存的 ...

  9. vue js库的条件渲染

    条件渲染 通过条件指令可以控制元素的创建(显示)或者销毁(隐藏),常用的条件指令如下: v-if v-if可以控制元素的创建或者销毁 <h1 v-if="ok">Yes ...

  10. 【转载】我为什么弃用OpenStack转向VMware vsphere

    我为什么弃用OpenStack转向VMware Vsphere,一切皆为简单.高效.因为我们在工作过程中涉及到大量的测试工作,每天都有成百个虚拟机的创建和销毁工作. 工作任务非常繁重,我们的持续集成平 ...