Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题


Posted in Javascript onNovember 22, 2017

Vue.js可以很方便的实现数据双向绑定,所以在处理表单,人机交互方面具有很大的优势。下面给大家介绍Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题。

摘要: 表单标签取值问题中,单选按钮、复选按钮和下拉列表都比较特殊。这里总结一下vue.js中关于单选按钮、复选按钮和下拉列表不同情况的取值特殊性问题。

    表单标签取值问题中,单选按钮、复选按钮和下拉列表都比较特殊。这里总结一下vue.js中关于单选按钮、复选按钮和下拉列表不同情况的取值特殊性问题。

一、单选按钮

    单选按钮:单选按钮用 v-model 绑定填值属性用来表示checked,用于判断是否选中。

    当单选按钮没写value值时,在 vue.js 中将值赋为null。

    在普通标签中,当没写name时,html 会默认将没写name 的单选按钮分为一组;

    在vue中,即使没写name,只要单选按钮v-model绑定了同一个变量(如:gender),这些按钮也会被分为一组。但是习惯上,我们还是也写上name。

    在data中定义的变量gender的值将影响到单选按钮的默认选项,如: 本例子中gender:"女",默认选择女。

    js部分代码:

window.onload = function (){
 new Vue({
 el:"#app",
 data:{
  gender:"女"
 }
 });
}

    html部分代码:

<body>
 <div id="app">
 <!-- 
  单选按钮:单选按钮用 v-model 绑定填值属性用来表示checked,用于判断是否选中。
  当单选按钮没写value值时,在vue中将值赋为null
  在普通标签中,当没写name时,html 会默认将没写name 的单选按钮分为一组;
  在vue中,即使没写name,只要单选按钮v-model绑定了同一个变量(如:gender),这些按钮也会被分为一组。

但是习惯上,我们还是也写上name      

        在data中定义的变量gender的值将影响到单选按钮的默认选项,如: 本例子中gender:"女",默认选择女。

-->
 <input type="radio" id="man" name="gender" value="男" v-model="gender">
 <label for="man">男</label>
 <input type="radio" id="woman" name="gender" value="女" v-model="gender">
 <label for="woman">女</label>
 </div>
</body>

二、复选按钮

    复选按钮:单选按钮用 v-model 绑定填值属性用来表示checked,用于判断是否选中。

    当多选按钮没写value值时,在 vue.js 中将值赋为null。

    vue.js对于复选按钮如何取值取决于 v-model 绑定的变量的类型。

1、基本类型

    初始化时,v-model 绑定的是任意的基本类型(Number、String、Boolean、Null、Undefined),取值时会默认转为Boolean类型,true时表示选中,false表示未选中。

js段代码:

window.onload = function (){
 new Vue({
 el:"#app",
 data:{
  hobbies01:"",
  hobbies02:"...",
  hobbies03:false
 }
 });
}

html段代码:

<body>
 <div id="app">
 <!-- v-model 绑定的是基本类型 -->
 <input type="checkbox" name="hobbies" id="box01" value="敲代码" v-model="hobbies01">
 <label for="box01">敲代码</label>
 <input type="checkbox" name="hobbies" id="box02" value="写代码" v-model="hobbies02">
 <label for="box02">写代码</label>
 <input type="checkbox" name="hobbies" id="box03" value="撸代码" v-model="hobbies03">
 <label for="box03">撸代码</label>
 <hr/>
 </div>
</body>

效果截图:

Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题

    初始化时,hobbies01值为空字符串转化为Boolean类型时false,所以未选中;hobbies02值为字符串“....”,转化为Boolean类型是true,所以默认选中;hobbies03默认值是false,所以初始化时未选中。

    此后,每次点击多选按钮,hobbies01、hobbies02、hobbies03的值都是 true | false 变化。

2、数组

    初始化时,v-model 绑定的变量是数组类型时。vue 认为这个复选按钮是用于获取值,会以选择(鼠标点击)的顺序将对应的值写入到数组中。

js代码段:

window.onload = function (){
 new Vue({
 el:"#app",
 data:{
  hobbies:[]
 }
 });
}

html代码段:

<body>
 <div id="app">
 <!-- v-model 绑定时数组 -->
 <input type="checkbox" name="hobbies" id="box01" value="敲代码" v-model="hobbies">
 <label for="box01">敲代码</label>
 <input type="checkbox" name="hobbies" id="box02" value="写代码" v-model="hobbies">
 <label for="box02">写代码</label>
 <input type="checkbox" name="hobbies" id="box03" value="撸代码" v-model="hobbies">
 <label for="box03">撸代码</label>
 </div>
</body>

效果截图:

Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题

    初始化时 hobbies 是一个空数组。注意鼠标点击顺序和 hobbies 值的对应变化。                 

三、下拉列表

    下拉列表:下拉列表中 v-model 写在下拉列表的标签中 <select>标签中。

    根据指定值选择对应<option> 添加选中状态。

    option 没有value属性 以 option 正反标签中的值 作为value。

3.1 下拉列表

js代码段:

window.onload = function (){
 new Vue({
 el:"#app",
 data:{
  s:""
 }
 });
}

html代码段:

<body>
 <div id="app">
 <select v-model="s">
  <option value="s1">小学</option>
  <option value="s2">中学</option>
  <option value="s3">大学</option>
  <option itany="itany" value="">请选择</option>
 </select>
 </div>
</body>

结果分析:

    因为变量 s 的初始值是空字符串,所以默认选择 “请选择选项”(可以根据s的初识值改变默认选项)。当选择其他option时,s 的值会随之改变(字符串:"s1"/"s2"/"s3")。

3.2 未写value值

    当未写 value 时, s 的值会变成 “小学”/“中学”/“大学”。

3.3 多选下拉列表

    multiple关键字,按住 ctrl 键进行多选。注意此时 model 绑定的变量应该是数组。

总结

以上所述是小编给大家介绍的Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
js判断60秒以及倒计时示例代码
Jan 24 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 Javascript
JavaScript获取网页中第一个链接ID的方法
Apr 03 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
Nov 17 Javascript
AngularJS使用angular-formly进行表单验证
Dec 27 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
May 05 Javascript
JavaScript实现的商品抢购倒计时功能示例
Apr 17 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
微信小程序时间控件picker view使用详解
Dec 28 Javascript
js笔试题-接收get请求参数
Jun 15 Javascript
微信小程序实现列表左右滑动
Nov 19 Javascript
Vue官方文档梳理之全局配置
Nov 22 #Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
Nov 22 #Javascript
vue在使用ECharts时的异步更新和数据加载详解
Nov 22 #Javascript
echarts学习笔记之箱线图的分析与绘制详解
Nov 22 #Javascript
解析Vue2 dist 目录下各个文件的区别
Nov 22 #Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
Nov 22 #Javascript
echarts学习笔记之图表自适应问题详解
Nov 22 #Javascript
You might like
PHP中PDO的错误处理
2011/09/04 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
简单JS代码压缩器
2006/10/12 Javascript
javascript 常用代码技巧大收集
2009/02/25 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
让ie运行js时提示允许阻止内容运行的解决方法
2010/10/24 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
tab栏切换原理
2017/03/22 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
Python进行数据科学工作的简单入门教程
2015/04/01 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
详解Python中的type和object
2018/08/15 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
代码详解django中数据库设置
2019/01/28 Python
谈谈Python中的while循环语句
2019/03/10 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
python 利用toapi库自动生成api
2020/10/19 Python
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
春节联欢晚会主持词范文
2014/03/24 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
会计实训报告范文
2014/11/04 职场文书
保密工作整改报告
2014/11/06 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书