1

我动态创建了一组 RadioButtons,然后我想在 javascript 中选择一个。

控件创建如下:

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

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

然后,在页面上,我正在做:

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

警报显示为空。我不知道为什么...我检查了 chrome 中的代码,单选按钮在页面中。

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

有任何想法吗?

需要注意的是,此代码位于由 prettyPhoto jquery 插件生成的 iframe 中。我想知道这是否是问题的根源......

提前致谢

4

3 回答 3

0

您的代码似乎完全正确。如果你在这里分享你的html会更好。尝试使用 console.log 而不是 alert 并检查你的 firebug 控制台该元素是否返回。

于 2012-10-22T13:02:28.430 回答
0

不清楚你的意思是create dynamically如果你在客户端上动态创建,那么你最好用.on它来做绑定

$("availableActions").on("change","input[name=group1",function(){
    ///do what ever you wish
});
于 2012-10-22T13:10:20.923 回答
0

如果有人遇到这个问题,解决方案是将 jQuery 更改为无冲突模式。

我不确定是什么导致了冲突,因为$(document).ready(function () { console.log('loaded'); });工作正常,但我在页面上找不到任何控件。

要更改为无冲突模式,只需添加jQuery.noConflict();$ 并将其更改为 jQuery。

于 2012-10-25T09:36:19.137 回答