asp.net - 为什么将 ClientID 传递给 javascript 函数会传递整个控件?

标签 asp.net javascript internet-explorer-7

如果我将 ClientID 作为参数传递给 javascript 函数而不包括单引号,它会作为对控件本身的引用传递,然后无需先调用 getElementByID 即可使用。

我在任何地方都找不到这种行为的记录,这是浏览器特定的东西还是 .net 的东西还是什么?

我正在代码隐藏中像这样设置调用...

protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Attributes.Add("onClick", string.Format("showvalue({0})",  TextBox1.ClientID));
        }

我担心的是这在旧版本的 IE 中可能不起作用。 谢谢。

最佳答案

在生成 JS 代码时在您的 ID 值周围添加引号,例如: string.Format("showvalue('{0}')", TextBox1.ClientID)

如果没有引号,showValue 会使用您的 ClientID 名称获取全局变量的实例,该名称通常是您的控件呈现的 DOM 元素。

关于asp.net - 为什么将 ClientID 传递给 javascript 函数会传递整个控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343588/

相关文章:

asp.net - 从 ASP.NET 禁用所有浏览器的浏览器缓存

javascript - 如何检查字符串中是否存在任何阿拉伯字符(javascript)

javascript - 对象不支持属性或方法 'format' IE7/8

javascript - 卡片翻转悬停并单击

css - "Text - Empty Text Node"的IE7原因

html - IE7 中这个额外的滚动条是从哪里来的?

javascript - 如何在javascript中设置文本框的只读属性

c# - asp.net listbox_index 更改后的回传在每个按钮上触发

c# - ASP.NET 新手遇到新网站问题

javascript - URL 草案规范验证方法