получить текстовое поле выпадающего списка на стороне клиента - PullRequest
0 голосов
/ 01 сентября 2010

Я пытаюсь добавить событие на стороне клиента в выпадающий список, и мне нужен доступ к выбранному в настоящее время тексту. Я пробовал:

ddl_tech.Attributes.Add("onclick", "document.getElementById('" + chk_techreview.ClientID + "').disabled = this.options[this.selectedIndex].text.Equals(' UNASSIGNED');");

и

ddl_tech.Attributes.Add("onclick", "document.getElementById('" + chk_techreview.ClientID + "').disabled = this.text.Equals(' UNASSIGNED');");

Оба из них дают мне ошибки времени выполнения при запуске события.

Как правильно обращаться к клиенту на стороне этого текстового свойства?

Я пробовал это, но он не включает флажок ...

ddl_tech.Attributes.Add("onchange", "document.getElementById('" + chk_techreview.ClientID + "').disabled = this.options[this.selectedIndex].text == ' UNASSIGNED';");

ОТВЕТ:

Что ж, наряду с необходимостью использовать == вместо .Equals, когда вы устанавливаете checkbox.enabled = false на стороне сервера, он сбрасывает флажок в тегах и устанавливает его в disabled = true; поэтому вы должны установить ОБА checkbox.disabled = false и checkbox.parentElement.disabled = false; на стороне клиента, чтобы включить флажок!

Решение:

ddl_tech.Attributes.Add("onchange", "document.getElementById('" + chk_techreview.ClientID + "').parentElement.disabled = (this.options[this.selectedIndex].text == 'UNASSIGNED'); document.getElementById('" + chk_techreview.ClientID + "').disabled = (this.options[this.selectedIndex].text == 'UNASSIGNED');");

Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 01 сентября 2010

В строке JavaScript отсутствует .Equals(), вместо этого используйте оператор ===, например:

ddl_tech.Attributes.Add("onchange", "document.getElementById('chk_techreview').disabled = ( this.options[this.selectedIndex].text === 'UNASSIGNED');");

Вы можете попробовать здесь , я также изменил событие на onchange, так как это вероятно больше того, что вам нужно. Кроме того, в зависимости от вашего выбора это может быть просто 'UNASSIGNED', а не ' UNASSIGNED'.

1 голос
/ 01 сентября 2010

Я считаю, что это должно быть:

ddl_tech.Attributes.Add("onclick", "var s = document.getElementById('" + chk_techreview.ClientID + "'); s.disabled = (s.selectedIndex == -1 || s.options[s.selectedIndex].text == ' UNASSIGNED ');");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...