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

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

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

4

4 回答 4

2

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

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

或者

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

var radioButton = $('#<%= myButton.ClientID %>');
于 2012-12-14T09:52:39.630 回答
0

您可以directly通过其 id 评估元素,并且确实not需要使用find,您只需要id选择器,因为 id 对于 html 元素是唯一的。

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

    //with javascript
    myButton = document.getElementById('#<%= myButton.ClientID %>');
});
于 2012-12-14T09:51:55.890 回答
0

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

尝试这样的事情:

window.onload = function() {
    alert( $find('myButton') );
}
于 2012-12-14T09:52:19.180 回答
0

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

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

var yourButton = $get("<%= myButton.ClientID %>");
于 2012-12-14T09:55:11.600 回答