form表单的渐进增强--使所有浏览器都支持label标签的for关联属性

label标签通过for属性,把一小段文本关联到form表单的一个字段。很多浏览器会对label标签添加默认属性:如果label标签被点击,关联的表单字段就会自动获得焦点。
然而并不是所有浏览器都支持该行为。要使所有的浏览器都支持label元素for属性的表单字段关联行为,可以添加一段javascript代码。

HTML代码:

<form method="post" action="submit.html">
			<fieldset>
				<p>
					<label for="name">Name:</label>
					<input type="text" name="name" id="name" placeholder="Your name" required="required">
				</p>
				<p>
					<label for="email">Email:</label>
					<input type="email" name="email" id="email" placeholder="Your Email Address" required="required">
				</p>
				<p>
					<label for="message">Message:</label>
					<textarea cols="45" rows="7" id="message" name="message" required="required" placeholder="wait for your message here."></textarea>
				</p>
				<input type="submit" name="submit" value="Send">
			</fieldset>
		</form>

javascript代码

function focusLabels(){
    if(!document.getElementsByTagName)return false;
    var labels=document.getElementsByTagName('label');
for(i = 0; i <labels.length; i ++){
    if(!labes[i].getArttribute('for'))continue;
    labels[i].onclick=function(){
    var id=this.getAttribute('for');
    if(!document.getElementById(id))return false;
    var element=document.getElementById(id);
    element.focus();
        }
    }
}
addLoadEvent(focusLabels);

其中 addLoadEvent函数为:

function addLoadEvent(func){
    var oldwindow.onload;
    if(typeof window.onload!='function'){
        window.func;
        }
    else{
        window.function(){
            oldonload();
            func();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值