label标签的二次点击事件
来源:互联网 发布:mac baren烟丝购买 编辑:程序博客网 时间:2024/05/21 18:36
在做一个问卷调查页面的时候,因为自定义选框样式,隐藏掉了单选框和复选框的input标签,用与之关联的label的伪类样式实现选框的自定义样式。因为问卷存在问题跳转,需要根据某个问题不同的选择展示接下来的问题,这样就涉及到在click事件后获取选框选中的值的问题。当我在包含所有option的div上增加了点击事件后,发现第一次点击并不能获取相应input的值,所得为undefined,而第二次点击后,会得到第一次点击的值。后来就发现了label标签的两次点击事件。于是对label标签和点击事件做了一些实验。
html代码如下,在单选部分的div/input/label上分别设置了id,来测试不同部分的点击事件。
<body> <div id="select1"> <input type="radio" name="sex" value="male" id="male"><label for="male" id="maleLabel">男</label><br> <input type="radio" name="sex" value="female" id="female"><label for="female">女</label> </div> <div id="select2"> <input type="checkbox" name="num" value="a" id="1"><label for="1">A</label><br> <input type="checkbox" name="num" value="b" id="2"><label for="2">B</label><br> <input type="checkbox" name="num" value="c" id="3"><label for="3">C</label> </div></body>
当在select1上设置点击事件并点击label部分时,控制台输出如下:
$("#select1").click(function(){ var val = $('input[name="sex"]:checked').val(); console.log(val); });
点击事件出现了两次,一次是发生label上,此时input上并没有点击事件,所以输出为undefined,第二次点击事件发生在与之关联的input上,得到选中的值。
此时如点击发生在input部分,则不会有undefined出现。
所以,当我把点击事件设置在label上时,就会出现第一次得到undefined,第二次得到第一次点击的值了,因为label的click事件发生时,input的click事件还没发生。
因此,在把input隐藏掉的情况下,要想获得click选中的值,就只有把click事件定义在包含input和label的外层div上了。不过由于项目中对option使用了ng-repeat,使用index来间接判断选中的选项也是可以的,这样click事件就可以定义在label上了。
项目中的dom结构如下:
<div class="ques-item hide1 show1" id="q4"> <div class="ques-item-question"> 4.{{questions[3].questionContent}} </div> <div class="ques-item-option"> <div ng-repeat="option in questions[3].options"> <input type="{{questions[3].questionType}}" name="problem4" value="{{option.optionCode}}" id="{{option.id}}"> <label for="{{option.id}}" ng-click="clickShow(4, $index)">{{option.optionContent}} </label> <textarea ng-if="$index == 3" class="ques-option-text" name="" id="" cols="30" rows="1" ng-model="text4"> </textarea> </div> </div></div>
- label标签的二次点击事件
- 关于label标签自身点击事件触发的影响和使用方式
- label标签onclick的事件处理
- <a>标签的点击事件
- a标签的点击事件
- <a>标签的点击事件
- 点击label标签选中radio
- pyqt4 label点击事件,label贴图
- 给label添加点击事件
- Qt Label添加点击事件
- iOS之巅峰 imageView 和 Label的点击事件
- 点击label时click事件被触发两次的坑
- Qt:添加点击事件的Label并显示图片
- label的扩大点击范围影响到了监听事件
- <label></label>标签的作用。
- IOS-oc中label标签添加点击事件并跳转页面
- html中Span标签的点击事件
- a标签的点击事件汇总
- 微信公众号开发-自定义菜单中链接用MUI前端框架写的网页以及发布到SAE服务器
- 关于SearchView的使用理解
- Linux操作系统十个注意事项
- Android Studio 百度地图定位、轨迹及所在位置与标注marker的距离
- LeetCode Nim Game
- label标签的二次点击事件
- LeetCode | Two Sum
- Delphi容器类之---TList、TObjectList、TComponentList、TClassList的使用
- 【闲聊】HUAWEI_Code_Craft sdk目录结构
- Oracle 11.2.0.4 expdp 含CLOB字段(basicfile)超级慢
- JVM笔记(二) 垃圾收集器(1)
- 【题解】 [HAOI2006]受欢迎的牛(强连通分量 tarjan)
- hdoj 1875 通畅工程再续 最小生成树
- python学习笔记(6):tuple的基本操作