2014-10-06 24 views
-1

這裏單選按鈕是我的onclick事件:分配的onclick函數具有相同的id

<script type="text/javascript"> 
    jQuery(document).ready(function(){ 
     jQuery("#qual_years_<?php echo $qualification['hash'];?>").hide(); 
     jQuery("#qual_<?php echo $qualification['hash'];?>").on('click',updateYears); 
}); 

這裏是我的單選按鈕:

<input type="radio" style="width:inherit;" id="qual_'.$qualification['hash'].'" name="qual_'.$qualification['hash'].'" value="1"/> 
<input type="radio" style="width:inherit" id="qual_'.$qualification['hash'].'" name="qual_'.$qualification['hash'].'" value="0"/> 

這是我的功能被分配:

function updateYears() 
{ 
    var id = '#qual_years_'+jQuery(this).attr('id').replace('qual_','');     
    if(jQuery(this).val() != 1){    
     jQuery(id).hide(); 
    } else { 
     jQuery(id).show(); 
    } 
} 

問題是,它只附加到第一個輸入。我如何將它連接到radio inputs。我不能給出兩個單獨的id作爲一個id的後端處理帳戶。

+7

兩個元素不應在同一個文檔中具有相同的'id'。 – 2014-10-06 19:08:41

+0

使用'class'而不是'id' – hindmost 2014-10-06 19:08:51

+0

搜索名稱'$('[name = abc123]')'。 HTML元素不應該具有相同的ID。一個id是一個標識符,因此它應該是唯一的。 – orhanhenrik 2014-10-06 19:09:27

回答

0

使用.each()方法,這裏是一個示例:

<ul> 
    <li>foo</li> 
    <li>bar</li> 
</ul 

$("li").each(function(index) { 
    console.log(index + ": " + $(this).text()); 
}); 

更多的OFFICIAL DOCS

乾杯!

0

您正在混合名稱和ID。這兩個元素不應該有相同的ID。如果它們屬於同一個radiogroup,它們應該有相同的名稱。這意味着當您將表單提交到後端時,它始終基於名稱而不是id。因此,當您根據後端名稱訪問單選按鈕時,它將返回表單提交時選定的單選按鈕的值。