.net javascript 母版页乱码元素名称有解决办法吗?

标签 .net javascript

<分区>

Possible Duplicate:
Any way to prevent master pages from changing element IDs?

你好

我有一个使用母版页的 .net 2.0 网页。有问题的页面上有一个表单,我正在尝试调用其中一个子元素。表单元素名称是:

"contact_label" - its an asp:Label

但是当我查看源代码时,我得到的名称是:

"ctl00_ContentPlaceHolder1_contact_label"

有没有办法绕过这种“名称乱码”?

我读过我应该能够像这样引用它:

document.getElementById("<%= contact_label.ClientID %>")

但这对我也不起作用......

这都是带有 javascript 的 .net 2.0。

谢谢,R。

最佳答案

如果您想使用 javascript,您可以为您的 javascript 创建一些全局变量,以便在您执行任何其他 javascript 调用之前使用该设置。我更喜欢这种方法,因为它减少了您在各处获取控件 ID 所需的内联代码量,并将其全部集中在一个位置。

所以在脚本代码的开头做:

// In your javascript
var myTextBoxId = "<%= myTextBox.ClientID %>";
var myButtonId = "<%= myButton.ClientID %>";

然后在你的 javascript 代码中,只要你需要使用它,你就可以这样做:

var myTextBox = document.getElementById(myTextBoxId);
var myButton = document.getElementById(myButtonId);

使用 Jquery 将使它看起来更干净。例如获取文本框值:

var myTextBoxValue = $("#" + myTextBoxId).val();
// or if you dont want to use the initializers to store the ids
var myTextBoxValue = $("#" + "<%= myTextBox.ClientID %>").val();

关于.net javascript 母版页乱码元素名称有解决办法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1753166/

相关文章:

c# - 以下代码是否意味着方法的实现仅作为 dll 提供,而没有 C# 源代码?

c# - XmlSerializer 为 x86 和 x64 生成不同的输出

.net - 显示/隐藏详细信息 WinForm

javascript - Google Maps v3 - 客户端上的 map 图 block 缓存?

javascript:哪个是功能强大的 Javascript - 框架可以满足我的需求

.net - 将 Windows Phone 8 应用程序移植到 Windows 8

c# - 查询时丢失对子对象的引用

javascript - 使用 Ajax 加载页面内容后加载 Javascript

javascript - 如何很好地修改大量元素的属性?

javascript - 交互式工具提示库