2012-10-05 52 views
1

我們有動態ID從這樣的數據庫生成的:獲取動態無線電ID和值(jQuery的)

<input type="radio" id="brand1" value="1"> 
<input type="radio" id="brand1" value="2"> 
---- 
<input type="radio" id="brand2" value="1"> 
<input type="radio" id="brand2" value="2"> 

我如何獲得/警報,通過單選按鈕點擊,它是ID?

(我想我的錯誤是在第一行:「輸入#品牌)

$('input#brand').live('click',function() { 
    var radiovalue = $('input[name=brand + id]:checked').val() 
    alert(radiobuttonID + radiovalue); 
}); 
+1

您的標記無效。 ID必須是唯一的,並且「live」方法已被棄用。 – undefined

回答

1

你會使用這樣的東西拿到ID:

$('input[id^=brand]').live('click',function() { 
    alert($(this).attr('id')); 
});​ 

,這讓值:

$('input[id^=brand]').live('click',function() { 
    alert($(this).attr('value')); 
});​ 

請注意,我們可以把活單擊處理程序上的所有啓動要素與(^=)「品牌」。

請參閱JSFiddle

+0

非常感謝!這正是我們需要的! – KJS

1
$(document).on('click', 'input[type=radio]' , function() { 

    alert('Radio Button ID is : ' + this.id + ' - Value is : ' + this.value); 
}) 

另外,還要確保你有在頁面上唯一的ID ..

這是更好爲您要處理此事件的頁面上的所有單選按鈕分配單個類別..

$(document).on('click', '.myradio' , function() { 

     alert('Radio Button ID is : ' + this.id + ' - Value is : ' + this.value); 
    }) 

這樣做會使您的代碼更清晰,更易於理解

0

請更正您的選擇器。 $('input#brand')意味着您正在尋找具有確切ID「品牌」的INPUT。

1

使用attribute-starts-with-selector,這將選擇所有以brand開頭的id的輸入。

$('input[id^=brand]').live('click',function() { 
    alert(this.id + ' ' + this.value); 
}); 

而且在jQuery 1.7 .live()的已被廢棄,用.on()代替。同樣,id應該是唯一的,在你的標記中你有多個具有相同id的元素。

+0

@KJS他是對的。單選按鈕的名稱屬性應該相同,而不是ID。 +1 – bozdoz

+0

感謝信息傢伙! ps。具有相同ID的元素是預期的。它現在可以工作,但升級到jQuery 1.7>也將是一個甜蜜的項目:-) – KJS