2012-10-22 43 views
1

我創建了一組動態的RadioButtons,然後我想要在JavaScript中選擇一個。jquery選擇器和Asp.net動態控件

的控件創建如下:

protected override void CreateChildControls() 
{ 
    base.CreateChildControls(); 
    var rb = new RadioButton {GroupName = "group1"}; 

    this.availableActions.Controls.Add(rb); 
    ................ 
} 

然後,在頁面上,我做:

$(document).ready(function() { alert($('input[name=group1]')); }); 

警報顯示爲空。我想不出爲什麼...... 我檢查了鉻中的代碼,單選按鈕在頁面中。

<p id="availableActions" class="download_options"> 
    <input id="rb_0" type="radio" name="group1" value="rb_0" checked="checked"> 
    ..... 

任何想法?

重要的是要注意,這段代碼是在prettyPhoto jquery插件生成的iframe中。我不知道這是否是問題的根源......

在此先感謝

+1

如果沒有匹配,jQuery選擇器不會返回null,它們會返回一個空的選擇,那麼您正在看到的是或者它是否返回null? –

+0

請發佈(的片段)生成的HTML –

+0

@RuneFS:編輯 – Dante

回答

0

萬一有人有這個問題,解決方法是改變的jQuery到沒有衝突模式。

我不確定是什麼導致衝突,因爲$(document).ready(function() { console.log('loaded'); });工作正常,但我無法找到頁面上的任何控制。

要更改爲無衝突模式,只需添加jQuery.noConflict();並將$更改爲jQuery。

0

您的代碼似乎是完全正確的。如果你在這裏分享你的html會更好。嘗試使用console.log而不是alert,並檢查你的firebug控制檯該元素是否正在返回。

+0

該html是相當大的...這也顯示在控制檯爲空:$(document).ready(function(){console.log($( 'input [@ name = group1]'));}); – Dante

0

目前還不清楚您create dynamically的意思,如果你創建客戶端上的mdynamically那麼你使用.on做的更好結合

$("availableActions").on("change","input[name=group1",function(){ 
    ///do what ever you wish 
}); 
+0

在服務器上動態。但我在客戶端添加了靜態單選按鈕,但仍未加載。我不知道這是否與jQuery的PrettyPhoto插件有關... – Dante

+0

謝謝你的幫助符文。 – Dante