Почему передача ClientID в функцию javascript передает весь контроль? - PullRequest
1 голос
/ 05 декабря 2008

Если я передам ClientID функции javascript в качестве параметра без включения в него одинарных кавычек, он будет передан как ссылка на сам элемент управления, который затем можно использовать без предварительного вызова getElementByID.

Я нигде не могу найти это документированное поведение, это особенность браузера или вещь .net или что?

Я настраиваю вызов как этот в коде позади ...

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

Меня беспокоит, что это может не работать в старых версиях IE. Спасибо.

Ответы [ 2 ]

4 голосов
/ 05 декабря 2008

Добавьте кавычки вокруг вашего идентификатора, когда вы генерируете код JS, например: string.Format ("showvalue ( ' {0} ' )", TextBox1.ClientID)

Без кавычек showValue получает экземпляр глобальной переменной с вашим именем ClientID, которое обычно является элементом DOM, отображаемым вашим элементом управления.

0 голосов
/ 05 декабря 2008

Если вы передаете его в одинарных кавычках и используете getElementByID, он должен работать во всех браузерах, это «нормальный» способ.

Я не уверен, почему этот метод работает, как вы говорите. Это также работает в Firefox?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...