asp:RadioButton和javascript函数$ find()

时间:2012-12-14 09:49:43

标签: javascript asp.net

<asp:RadioButton ID="myButton" Text="Option" GroupName="group" runat="server" />

为什么在这种情况下javascript函数调用$find('<%= myButton.ClientID %>')会返回null?我需要在客户端javascript中检测/更改值。 $find()应该是Sys.Application.findComponent()的快捷方式。

更新:ID没有问题,我在chrome控制台中尝试使用真实呈现ID并且仍然为null的$ find()。我想获得Ajax控件,而不是DOM元素。

4 个答案:

答案 0 :(得分:2)

如果您没有多个实例,则需要将clientIdMode设置为static:

<asp:RadioButton ClientIDMode="static" ID="myButton" Text="Option" GroupName="group" runat="server" />

OR

您需要使用ClientID来查找您的按钮。但脚本必须在同一页面上。

var radioButton = $('#<%= myButton.ClientID %>');

答案 1 :(得分:0)

您可以directly按其ID评估元素,并且not需要使用find,您只需要id选择器,因为id对于html元素是唯一的。< / p>

$(function(){
    var myButton = $('#<%= myButton.ClientID %>');
    alert(myButton.id);

    //with javascript
    myButton = document.getElementById('#<%= myButton.ClientID %>');
});

答案 2 :(得分:0)

当您尝试获取组件时,您确定您的DOM已准备就绪吗?

尝试这样的事情:

window.onload = function() {
    alert( $find('myButton') );
}

答案 3 :(得分:0)

$find()尝试从其行为ID中找到ASP.NET AJAX组件。

由于您正在寻找DOM元素而不是组件,因此您应该使用$get()代替:

var yourButton = $get("<%= myButton.ClientID %>");