Я пытаюсь добавить событие на стороне клиента в раскрывающийся список, и мне нужно получить доступ к выбранному в данный момент тексту. Я пытался:
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');");
Спасибо за помощь!