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

 更新时间:2017年11月22日 11:52:08   投稿:mrr  
这篇文章主要介绍了Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题,非常不错,具有参考借鉴价值,需要的朋友可以参考下

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>

效果截图:

    初始化时,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>

效果截图:

    初始化时 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表单标签中的单选按钮、复选按钮和下拉列表的取值问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • vue短信验证性能优化如何写入localstorage中

    vue短信验证性能优化如何写入localstorage中

    这篇文章主要介绍了vue短信验证性能优化写入localstorage中的方法,解决这个问题需要把时间都写到localstorage里面去,具体解决方法大家参考下本文
    2018-04-04
  • 详解Vue webapp项目通过HBulider打包原生APP

    详解Vue webapp项目通过HBulider打包原生APP

    这篇文章主要介绍了详解Vue webapp项目通过HBulider打包原生APP,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • vue元素样式实现动态改变方法介绍

    vue元素样式实现动态改变方法介绍

    vue通过js动态修改元素的样式,如果是固定的几个样式,我常用的是绑定元素的calss,给不同的class写好需要的样式,js控制是否使用这个class
    2022-09-09
  • 一文彻底搞懂Vue的MVVM响应式原理

    一文彻底搞懂Vue的MVVM响应式原理

    这篇文章主要介绍了一文彻底搞懂Vue的MVVM响应式原理,vue则是采用发布者-订阅者模式,通过Object.defineProperty()来劫持各个属性的getter和setter,在数据变动时发布消息给订阅者,触发相应的监听回调
    2022-06-06
  • vue组件三大核心概念图文详解

    vue组件三大核心概念图文详解

    本文主要介绍属性、事件和插槽这三个vue基础概念、使用方法及其容易被忽略的一些重要细节,感兴趣的朋友跟随小编一起看看吧
    2019-05-05
  • Vue.js结合bootstrap实现分页控件

    Vue.js结合bootstrap实现分页控件

    这篇文章主要为大家详细介绍了Vue.js 合bootstrap实现分页控件的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 在vue中使用jointjs的方法

    在vue中使用jointjs的方法

    本篇文章主要介绍了在vue中使用jointjs的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 解决vue接口数据赋值给data没有反应的问题

    解决vue接口数据赋值给data没有反应的问题

    今天小编就为大家分享一篇解决vue接口数据赋值给data没有反应的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Vue中computed和watch的区别

    Vue中computed和watch的区别

    在vue项目中我们常常需要用到computed和watch,那么我们究竟在什么场景下使用computed和watch呢?他们之间又有什么区别呢?本将给大家详细的介绍一下,需要的朋友可以参考下
    2023-05-05
  • vue2中的keep-alive使用总结及注意事项

    vue2中的keep-alive使用总结及注意事项

    vue2.0提供了一个keep-alive组件用来缓存组件,避免多次加载相应的组件,减少性能消耗。本文给大家介绍vue2中的keep-alive使用总结及注意事项,需要的朋友参考下吧
    2017-12-12

最新评论