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 相关文章推荐
自己的js工具 Cookie 封装
Aug 21 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
Dec 09 Javascript
js自定义事件代码说明
Jan 31 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
Jan 16 Javascript
jquery常用操作小结
Jul 21 Javascript
js获取字符串最后一位方法汇总
Nov 13 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
JavaScript之生成器_动力节点Java学院整理
Jun 30 Javascript
微信小程序实现传递多个参数与事件处理
Aug 12 Javascript
JavaScript实现烟花绽放动画效果
Aug 04 Javascript
JavaScript 语句之常用 for 循环详解
Mar 29 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遍历文件夹和文件列表示例分享
2014/03/11 PHP
php邮件发送的两种方式
2020/04/28 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
js arguments对象应用介绍
2012/11/28 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
vue视频播放暂停代码
2019/11/08 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
Python中的localtime()方法使用详解
2015/05/22 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
Python unittest单元测试框架总结
2018/09/08 Python
PYTHON绘制雷达图代码实例
2019/10/15 Python
python中数据库like模糊查询方式
2020/03/02 Python
Python matplotlib修改默认字体的操作
2020/03/05 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
企业管理部经理岗位职责
2013/12/24 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
webpack的移动端适配方案小结
2021/07/25 Javascript
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技
Golang Web 框架Iris安装部署
2022/08/14 Python