亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于label關聯radio時候的問題

關于label關聯radio時候的問題

尚方寶劍之說 2018-08-30 10:05:45
話不多說 直接上代碼<!DOCTYPE html><html lang="en"><head>     <meta charset="UTF-8">     <title>Document</title></head><body>     <label for="input-radio-boy">         <input id="input-radio-boy" name="sex" type="radio">男    </label>     <label for="input-radio-girl">         <input id="input-radio-girl" name="sex" type="radio">女    </label>     <script>         var labels = document.getElementsByTagName('label');        for(var i=0;i<labels.length;i++){             labels[i].onclick = function(){                 alert(1);             }         }    </script></body></html>我點擊男或者女 不碰到radio的小圈圈 為什么會彈出兩下1 有沒有什么解決的辦法 恩 我知道吧input拿到label外面就沒這個現象了 還有其他方法嗎? 還有這個現象的本質是什么? 謝謝各位
查看完整描述

1 回答

?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

正確的關聯一個label標簽到一個input標簽做法就是把label拿到外面,因為你已經用了for屬性來表示label應該關聯哪一個input:

<input id="input-radio-boy" type="radio" name="sex" value="1">
<label id="input-radio-boy-label" for="input-radio-boy">男</label>

因為label標簽有一個特性,就是會傳遞'click'消息給關聯到的input方法,按你這個寫法當label標簽被點擊的時候,input會收到一個'click'消息,碰巧'click'消息還有一個特性是逐級向上傳遞的,而label又在input的上一級,因此'label'自身又會收到一次'click'消息。因此你最后看到了兩次alert。


查看完整回答
反對 回復 2018-10-14
  • 1 回答
  • 0 關注
  • 1138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號