2011-11-08 47 views
0

我想弄清楚爲什麼我的頁面不會觸發單選按鈕更改事件。ASP.NET單選按鈕jQuery處理

下面是我對它的腳本,它應該顯示一個div,一旦單選按鈕被選中。

 $("input[id$='radio1']").change(function() { 
     if ($("input[id$=radio1]").is(':checked')) { 
      $('#div1').removeClass('hidden'); 
     } 
    }); 

這段代碼有什麼問題?

回答

5
$("input[id$='radio1']").change(function() { 
    if ($(this).is(":checked")) { 
     $("#div1").removeClass("hidden"); 
    } 
}); 
+0

謝謝,會做! – Victor

1

您需要使用函數內部的this關鍵字,而不是問jQuery的搜索選擇再次匹配的元素。

$("input[id$='radio1']").change(function() { 
    if ($(this).is(':checked')) { 
     $('#div1').removeClass('hidden'); 
    } 
}); 
+0

呃......他用(http://api.jquery.com/attribute-ends-with-selector/)選擇的ID [屬性結尾] ...因此他需要[ID $ = radio1] –

+0

你錯了...... hes選擇器是所有的開始! –

+0

傻了,我已經把它刪除了,只剩下第二部分了!謝謝指出, – Connell

3
$("input[id$='radio1']").change(function() { 
    if ($(this).is(':checked')) { 
     $('#div1').removeClass('hidden'); 
    } 
}); 

你應該在你的函數中使用this對象。

+0

謝謝!效果不錯 – Victor

+0

@Victor不客氣:)(Royi儘管如此,他的回答應該是公認的答案)。 –

+0

@Interstellar_Coder對不起......回滾的變化,因爲我查看緩存版本,並認爲這是不正確的編輯>> –

0

試試以這種方式詢問收音機是否被選中。

if(document.getElementById('radio1').checked) { 
    $('#div1').removeClass('hidden'); 
} 
+1

,因爲它呈現控件時添加的父元素的名稱,這將不會與ASP.NET電臺工作。 – Victor

+0

你很好,所以你應該在塊內部使用它。 :) – JAiro