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表单标签中的单选按钮、复选按钮和下拉列表的取值问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
我已经建立了一个表单,允许用户按日期、Asc或Desc排序。 到目前为止,我已经找到了让用户: 1) 选择一个单选按钮。 2)提交后保留单选按钮。 3) 向所选用户显示书面信息。 HTML/PHP代码: 我想通过在选择时添加颜色背景,直观地显示用户的选择。背景色应横跨单选按钮和标签。这在CSS中是可能的吗?到目前为止,这是我所拥有的,只有标签使用了颜色/样式:
这是一个 列表 拓展,可以用来创建单选和复选按钮组。 复选按钮组 <div class="list-block"> <ul> <!-- Single chekbox item --> <li> <label class="label-checkbox item-content"> <!-- Checked by default -->
问题内容: 如何设置HTML复选框,单选按钮和下拉菜单的样式?可以吗 我想为复选框或单选按钮使用图像,对列表使用相同的图像-下拉箭头在大多数情况下看起来不太好。 问题答案: 请参阅jQuery插件的2个链接(用于样式化复选框和单选按钮): http://line25.com/articles/jquery-plugins-for-styling-checkbox-radio- buttons ht
我正在尝试通过文本选择列表中的条目。li条目也有ID,但我想用文本代替。 我有以下html片段: Leier kommunal bolig Leier bolig 选项一:我试着这样做: 我试过“值”和其他选项。但我总是得到“指定了一个无效或非法的选择器”。 但显然有问题,因为它没有导航到页面上的列表条目,并且该选项没有被选中。 另外,如果我使用.sendKeys(keys.enter)而不是.c
问题内容: 我需要创建一个RadioButtons列表,但是如果尝试使用ListView进行创建,则可以同时选择所有单选按钮,但是我需要同时选择1个单选按钮。因此,我可以尝试以下代码: 但是布局不会显示所有项目,因为布局很小。我需要滚动条或其他方式来执行任务。请帮帮我。 问题答案: 您应该将其设置为单模式。为此,添加到包含您的布局:
问题内容: 是否可以将css(3)样式应用于选中的单选按钮的标签? 我有以下标记: 我希望的是 会做某事,但是可惜它没有(我预期的那样)。 是否有一个选择器可以实现这种功能?如果有帮助,您可以将divs围起来,但是最好的解决方案是使用标签“ for”属性。 应该注意的是,我能够为我的应用程序指定浏览器,所以请最好使用css3等类。 问题答案: 尝试符号:它是相邻的同级组合器。它结合了两个具有相同父