label標簽加for與不加for屬性的區別


w3c的標准用法  

<form>
  <label for="male">Male</label>
  <input type="radio" name="sex" id="male" />
  <br />                       

  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" />
</form>

 

 

還有一種用法:<label>包裹<input>標簽

<form action="" class="box">
  <label for="btn1">
    <input type="radio" name="aa" id="btn1"/>
    我是單選按鈕1
  </label>
  <label for="btn2">
    <input type="radio" name="aa" id="btn2"/>
    我是單選按鈕2
  </label>
</form>

注:這種用法代碼看起來比較規整,多個單選或者復選框時更能在視覺上體現代碼的規整;

但是這種寫法需要注意的問題是:for屬性,

 1,加了for屬性就必須要有值(值為內元素input的id),如果只是一個空的for屬性,則label失效,無法關聯到內部的input框的篩選

 注:這種寫法label標簽是不起作用的

 

 2,不加for標簽,當用戶選擇該標簽時,瀏覽器會自動將焦點轉到和標簽相關的表單控件上

  注:<label>包裹<input>標簽,點擊<label>,<label>響應兩次,即<label>本身出發和<input>觸發后冒泡到<label>。

  解決方法:1把label的事件放到input上;2給input加阻止事件冒泡;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM