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

Asp.net 为什么将ClientID传递给javascript函数会传递整个控件?,asp.net,javascript,internet-explorer-7,Asp.net,Javascript,Internet Explorer 7,如果我将ClientID作为参数传递给javascript函数,而不在其周围包含单引号,那么它将作为对控件本身的引用传递,然后可以在不调用getElementByID的情况下使用该控件 我在任何地方都找不到这种行为的文档,这是特定于浏览器的东西还是.net的东西还是什么 我在暗中设置了这样的呼叫 protected void Page_Load(object sender, EventArgs e) { Button1.Attributes.Add("on

如果我将ClientID作为参数传递给javascript函数,而不在其周围包含单引号,那么它将作为对控件本身的引用传递,然后可以在不调用getElementByID的情况下使用该控件

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

我在暗中设置了这样的呼叫

protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Attributes.Add("onClick", string.Format("showvalue({0})",  TextBox1.ClientID));
        }
我担心的是,这在旧版本的IE中可能不起作用。
谢谢。

如果您用单引号传递它并使用getElementByID,它应该在所有浏览器中都能工作,这是“正常”的方式


我不知道为什么这个方法像你说的那样有效。它在Firefox中也可以工作吗?

如果您用单引号传递它并使用getElementByID,它应该在所有浏览器中都可以工作,这是“正常”的方式


我不知道为什么这个方法像你说的那样有效。它在Firefox中也可以使用吗?

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


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

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


如果不带引号,showValue将获取一个全局变量的实例,该实例的ClientID名称通常是控件呈现的DOM元素。

您是否实际查看了由此生成的HTML?我不认为你一看到源代码,这种行为就那么神秘。谢谢,我不认为它神秘。我只知道它不是通常的做法,而是担心跨浏览器支持等。你真的看过它产生的HTML吗?我不认为你一看到源代码,这种行为就那么神秘。谢谢,我不认为它神秘,我只知道它不是通常的做法,而是担心跨浏览器支持等。