html5中的input和label写法与取值

demo 效果图如上
label是html5特有的,是定义 input 元素的标注。
凡是input前面要有个label标识下,label和input真是一对好兄弟啊。
<label> 标签的 for 属性应当与相关元素的 id 属性相同。
<div class="blocks mgtop0 brdbtm0 clearFix">
<div class="addareaBox">
<label class="stateTitle"><em class="redStar">*</em>国家</label>
<ul class="listInfoUl">
<li id="states" class="statesLi">
<label class="arealabel" for="areaInput0">
<input type="checkbox" name="areaInputConts" id="areaInput0" value="9">法国</label>
<label class="arealabel" for="areaInput1">
<input type="checkbox" name="areaInputConts" id="areaInput1" value="10">比利时</label>
</li>
</ul>
</div> <div class="addareaBox">
<label><em class="redStar">*</em>城市</label>
<ul class="listInfoUl">
<li id="areaInput0-citys" class="citysLi">
<label class="arealabel all">法国</label>
<label class="arealabel" for="areaInput0-citys-Input0">
<input type="checkbox" name="areaInputCitys" id="areaInput0-citys-Input0" value="27">尼斯</label>
<label class="arealabel" for="areaInput0-citys-Input1">
<input type="checkbox" name="areaInputCitys" id="areaInput0-citys-Input1" value="26">巴黎</label>
<label class="arealabel" for="areaInput0-citys-Input2">
<input type="checkbox" name="areaInputCitys" id="areaInput0-citys-Input2" value="28">马赛</label>
</li>
<li id="areaInput1-citys" class="citysLi">
<label class="arealabel all">比利时</label>
<label class="arealabel" for="areaInput1-citys-Input0">
<input type="checkbox" name="areaInputCitys" id="areaInput1-citys-Input0" value="82">安特卫普</label>
<label class="arealabel" for="areaInput1-citys-Input1">
<input type="checkbox" name="areaInputCitys" id="areaInput1-citys-Input1" value="83">西弗兰德</label>
<label class="arealabel" for="areaInput1-citys-Input2">
<input type="checkbox" name="areaInputCitys" id="areaInput1-citys-Input2" value="84">东弗兰德</label>
</li>
</ul>
</div>
</div>
通过lable来控制 input的样式和选择状态。
.newCityguide .addareaBox li .arealabel.checked {
background-color: #e93854;
color: #fff;
}
.newCityguide .addareaBox li .arealabel {
display: inline-block;
margin-bottom: 0.5em;
margin-right: 0.5em;
padding-bottom: 0.25em;
padding-left: 0.5em;
padding-right: 0.5em;
padding-top: 0.25em;
width: auto;
}
通过下面两行,获取input的上一级 label
thisstatelabelDoms = $(".arealabel");
console.log("thisstatelabelDoms:"+thisstatelabelDoms);
然后通过绑定click事件,实现选择与否的状态切换
thisstatelabelDoms.click(function(){});
核心代码如下:
//也不是没有bug,好像初始加载后,头次需要点两次才能实现checked状态的切换。
var thisstatelabelDoms;
if(conid){
thisstatelabelDoms = $(conid).find(".arealabel");
console.log("thisstatelabelDoms-confid:"+thisstatelabelDoms);
}else{
//input 上一级 label
thisstatelabelDoms = $(".arealabel");
console.log("thisstatelabelDoms:"+thisstatelabelDoms);
}
//国家的父ID是states ;城市父ID是areaInput0-citys
var statesId = $(this).parent().attr("id");
var thisInpt = $(this).find("input[type=checkbox]");
//状态
var thisinptckeck= thisInpt.attr("checked");
var contname=$(this).parent().html();
if(thisinptckeck=="checked"){
$(this).addClass("checked");
if(statesId=="states"){
var thisInptId = thisInpt.attr("id");
$("#"+thisInptId+"-citys").show();
}
$("#inputHidden").val(getCheckboxV);
}else{
$(this).removeClass("checked");
if(statesId=="states"){
var thisInptId = thisInpt.attr("id");
$("#"+thisInptId+"-citys").hide();
$("#"+thisInptId+"-citys").find("label input[type=checkbox]").each(function(k,n){
$(n).attr("checked",false);
$(n).parent().removeClass("checked");
});
}
$("#inputHidden").val(getCheckboxV);
}
通过getCheckboxV函数,遍历获取选择的国家和城市ID
function getCheckboxV(selecter){
var thisSelecterDoms;
var thisSelecterContDoms;
var thisStr="";
if(selecter){
thisSelecterDoms = $(selecter);
$(thisSelecterDoms).each(function(){
if($(this).find("input[type=checkbox]:checked").val() != undefined){
thisStr+=$(this).find("input[type=checkbox]:checked").val()+",";
}
});
}else{
//cont id
//注意同类input的写法$("input[name=areaInputConts]:checked"),name相同 checked状态相同
thisSelecterContDoms = $("input[name=areaInputConts]:checked");
$(thisSelecterContDoms).each(function(){
if($(this).val() != undefined){
//判断国家下是否有城市,没选城市flag=true,勾选了flag=false
var flag=true;
var thisContId = $(this).attr("id");
$("#"+thisContId+"-citys").find("label input[type=checkbox]").each(function(k,n){
if($(n).attr("checked")=="checked") {
flag=false;
}
}
);
if(flag){
thisStr+=$(this).val()+",";
}
}
});
//city id
thisSelecterDoms = $("input[name=areaInputCitys]:checked");
$(thisSelecterDoms).each(function(){
if($(this).val() != undefined){
thisStr+=$(this).val()+",";
}
});
}
return thisStr;
}
也不是没有bug,好像初始加载后,头次需要点两次才能实现checked状态的切换。出现这样的问题,是因为click绑定在了label上了,改绑定到input上就不是响应两次了。。
html5中的input和label写法与取值的更多相关文章
- php的form中元素name属性相同时的取值问题
php的form中元素name属性相同时的取值问题:修改元素的名称,在名称后面加上 '[]',然后取值时即可得array()数组. 一.以复选框为例: <html> <head> ...
- 在LoadRunner中从数组类型的参数随机取值的方法
在LoadRunner中从数组类型的参数随机取值的方法 使用web_reg_save_param做关联后,有时候会有多个匹配值. 为了模仿用户行为随机取一个值为后续transcation所用,可以使用 ...
- html5中关于input使用方法的改变
測试环境:Firefox 10.0.Safari 5.1.Opera 11.61, Chrome 14.0.835.202 自己測试的时候都有写在form表单里,有提交button验证.由于对博客使用 ...
- Java 中日期的几种常见操作 —— 取值、转换、加减、比较
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提 ...
- Gridview中DataKeyNames 设置多个主键 取值
1.设置DataKeyNames a.F4 在属性面板中设置 多个值以逗号隔开 例如id,mane,sex b.通过后台代码 this.gridview.DataSource = Bind() ...
- Handlebars.js中集合(list)通过中括号的方式取值
有这么一个需求,在一个table中,tr是通过each取值,取出的值要与table标题相对应,如何实现?例如: <table> <thead> <tr> {{#ea ...
- 聊聊 Java 中日期的几种常见操作 —— 取值、转换、加减、比较
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提 ...
- DataList:HTML5中的input输入框自动提示宝器
DataList的作用是在你往input输入框里输入信息时,根据你敲进去的字母,自动显示一个提示下列列表,很像百度或谷歌的搜索框的自动提示,在飞机票火车票的搜索页面上也有这样的效果.它是HTML5里新 ...
- HTML5中的input type为file控件限制上传文件类型及扩展
简单介绍 input file控件限制上传文件类型如下:1.文件类型中间用,分开:2.html和htm这样的要写成两个: 3实例: <input type="file" na ...
随机推荐
- 用单片机控制LED灯(项目)
#include <reg52.h> #define uchar unsigned char sbit LED_RED = P2^; sbit LED_GREEN = P2^; sbit ...
- [BZOJ4987]Tree
题目大意: 给定一棵\(n(n\le3000)\)个点的带边权的树,找出\(k\)个点\(A_{1\sim k}\)使得\(\sum_{1\le i<k} dis(A_i,A_i+1)\)最小. ...
- 前端性能优化 —— 减少HTTP请求
简要:对于影响页面呈选 的因素有3个地方:服务器连接数据库并计算返回数据 , http请求以及数据(文件)经过网络传输 , 文件在浏览器中计算渲染呈选: 其中大约80%的时间都耗在了http请求上,所 ...
- phantomjs + python 打造一个微信机器人
phantomjs + python 打造一个微信机器人 1.前奏 媳妇公司不能上网,但经常需要在公众号上找一些文章做一些参考,需要的时候就把文章链接分享给我,然后我在浏览器打开网页,一点点复制过 ...
- java知识思维图解
- Toast信息提示:下拉收起(基于jQuery)(app信息提示更新)
直接上效果:
- IOS 数据存储之 FMDB 详解
FMDB是用于进行数据存储的第三方的框架,它与SQLite与Core Data相比较,存在很多优势. FMDB是面向对象的,它以OC的方式封装了SQLite的C语言API,使用起来更加的方便,不需要过 ...
- CSS 布局整理
1.css垂直水平居中 效果: HTML代码: <div id="container"> <div id="center-div">&l ...
- android手势识别ViewFlipper触摸动画
使用ViewFlipper来将您要来回拖动的View装在一起,然 后与GestureDetector手势识别类来联动,确定要显示哪个View,加上一点点动画效果即可.比如当手指向左快速滑动时跳转到上一 ...
- 【工具】使用markdown写ppt
见识到一个新工具,markdown写ppt,支持多平台:https://yhatt.github.io/marp/ 看起来是一个不错的小工具,有兴趣可以尝试一下.