2010-04-24 46 views
1

我在我的jQuery中有以下檢查,我認爲工作正常,看是否檢查單選按鈕。奇怪的行爲時,檢查如果在jQuery中選擇單選按鈕

if ($("input[@name='companyType']:checked").attr('id') == "primary") { 
    ... 
} 

這裏的單選按鈕:

<p> 
     <label>Company Type:</label> 
     <label for="primary"><input onclick="javascript: $('#sec').hide('slow');$('#primary_company').find('option:first').attr('selected','selected');" type="radio" name="companyType" id="primary" checked />Primary</label> 
     <label for="secondary"><input onclick="javascript: $('#sec').show('slow');" type="radio" name="companyType" id="secondary" />Subsidiary</label>    
    </p> 

然後,它突然停止工作(或因此我想)。我做了一些調試,最終意識到它返回了「approved_status」的ID。在我的表單中的其他地方,我有一個名爲「approved_status」的複選框。我意識到,當我最初測試這個時,我必須在approved_status爲false的記錄上進行測試。而且,現在我的approved_statuses中的大部分都是真實的/檢查過的。

我改變了代碼如下:

var id = $("input:radio[@name='companyType']:checked").attr('id'); 
alert(id); 
if (id == "primary") { 

而且它現在可以正確地返回「主」或「輔助」作爲id。

所以,它正在工作,但它似乎沒有檢查名稱,現在只是檢查單選按鈕。我只是想知道未來的用途,原始代碼b/c有什麼問題我可以看到可能在頁面上有兩個不同的收音機,然後我的新修復程序可能無法工作。謝謝!

回答

2

試試這個:

var id = $("input[name='companyType']:checked").attr('id'); 
alert(id); 
if (id == "primary") { 
+0

該訣竅。謝謝! @代表什麼?我在網上看到了這個代碼多個地方使用@ – RememberME 2010-04-24 22:50:47