单击 label 触发 checkbox,checkbox 触发 click

17 篇文章 0 订阅

转载于:

http://www.cftea.com/c/2011/02/2UCSDQNDA6U9EV3V.asp

http://www.cftea.com/c/2010/12/L5RJ4NFAQ8JRDL0W.asp

 

在桌面程序中,checkbox 后面是带文字的,单击文字就会选中或取消选中选择框,点起来很方便,但 HTML 中 checkbox 是干的,单起来非得把鼠标移到那个小小的 checkbox 框框上。

要想实现桌面程序的效果,可增加一个控件 label。

<input type="checkbox" id="c1" name="c1" value="c1" />
<label for="c1">喜欢千一网络就点我</label>

如上代码,点 label 的文字,前面的 checkbox 就会被选中,再点击就会被取消。

令人欣喜的是,点 label 跟点 checkbox 一样,都会触发 checkbox 的 click 事件,这就方便了我们 DOM 编程。

另外

label 须指定一个 for 属性,对应一个 checkbox 的 id,大量的 label 和 checkbox 时,较麻烦,可使用 ezj 的 labelFor 轻松解决

 
 

如何让网页也像桌面程序一样,单击文字选择多选框、单选框、文本框……可用 label,且指定 for 属性值为元素 id,但每个都指定,一来麻烦,二来不便于维护。

<div>
  您使用过 ezj 吗?
  <input type="radio" name="r1" /><label>使用过</label>
  <input type="radio" name="r1" /><label>还没有</label>
</div>
<div>
  您使用过的其他 JavaScript 框架:
  <input type="checkbox" name="c1" /><label>Prototype</label>
  <input type="checkbox" name="c1" /><label>jQuery</label>
  <input type="checkbox" name="c1" /><label>YUI</label>
  <input type="checkbox" name="c1" /><label>ExtJS</label>
  <input type="checkbox" name="c1" /><label>MooTools</label>
</div>
<div>
  <label>您对 ezj 有什么建议?</label>
  <input type="text" size="30" name="t1" />
</div>

JavaScript 代码(ezj 代码)

ezj.ready(function(){
    $("<label").labelFor();
});

labelFor 自动识别 label 前后的元素,并根据元素类型来执行是否进行 for 关联:若 label 前面是多选框、单选框,则关联;若后面是文本框,则关联。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值