我有<asp:TextBox runat="server" ID="lastName" />一个页面,我想用jQuery设置焦点,但它没有返回它.我的代码是这样的:
$.ready() {
var tb = $('lastName').focus(); // don't work, why?
}
Run Code Online (Sandbox Code Playgroud)
LBu*_*kin 12
您需要解决两个不同的问题:格式错误的选择器以及ASP.NET客户端ID与服务器ID不匹配的事实.
你想要的是:
$.ready() {
$('#<%= lastName.ClientID %>').focus();
}
Run Code Online (Sandbox Code Playgroud)
让我们分解一下......
首先,在jQuery中,通过它的id属性访问元素的选择器需要以"#"符号开头.所以访问者看起来应该更像:$('#lastName').jQuery中的选择器类似,但比CSS更强大.您可以熟悉jQuery API站点上的选择器语法.
其次,使用ASP.NET,分配给HTML元素的id通常与识别服务器上的asp控件的id不同.这是因为ASP.NET需要确保所有元素都是唯一标识的 - 并且不会与可能在母版页,用户控件或重复的内容部分中定义的名称发生冲突.这些ID往往变得很长并且通常无法预测 - 幸运的是,我们可以将<%= %>代码扩展与ClientID控件的属性一起使用,以便为HTML元素插入适当的id,而无需了解ASP.NET如何分配唯一的详细信息IDS.
在ASP.NET 4.0中,现在可以直接指定客户端ID,这有助于避免上面显示的技术.
| 归档时间: |
|
| 查看次数: |
7389 次 |
| 最近记录: |