2009-05-14 1 views
1

Мне нужно получить идентификатор выпадающего списка (ASP.Net Control), чтобы я мог определить, был ли выбран элемент.Идентификатор списка .net в javascript на клиенте нажмите

Сейчас я пытаюсь просто написать подсчет DropDownList в окно предупреждения следующим образом:

OnClientClick="alert(document.getElementID('<%=ListBox1.ClientID %>').options.length) 

ошибка, я получаю 'требуемый документ.

ответ

0

Отвод использовать document.getElementById вместо document.getElementId

2

Сначала давайте исправлять getElementID в вашем коде getElementById:

OnClientClick="alert(document.getElementById('<%=ListBox1.ClientID %>').options.length);" 

Если вы хотите знать, какой пункт выбран, используйте selectedIndex свойство :

OnClientClick="alert(document.getElementById('<%=ListBox1.ClientID %>').selectedIndex);" 

Если вы хотите использовать значение параметра, а не индекс, используйте коллекцию опций с индексом:

OnClientClick="var s=document.getElementById('<%=ListBox1.ClientID %>');alert(s.options[s.selectedIndex].value);" 

Edit:
Это будет работать, если контроль, где вы пытаетесь использовать это был не сервер управления, например:

<input type="button" onclick="alert(document.getElementById('<%=ListBox1.ClientID %>').options.length);" /> 

Как есть элемент управления сервера , вы не можете использовать тег скрипта (<% =%>) внутри элемента управления. Вы должны установить свойство из кода позади:

TheButton.OnClientClick = "alert(document.getElementById('" + ListBox1.ClientID + "').options.length);"; 
+0

По-прежнему требуется объект. – Eric

+0

Я вижу. Это тег сценария <%= %>. Я отредактировал ответ. – Guffa

0

Мой Javascript немного ржавый, но вы не можете использовать «это» ключевое слово? что-то вроде:

OnClientClick="alert(this.options.length);" 
Смежные вопросы