Не удалось получить идентификатор для asp: dropdownlist, который заполняется динамически

61
8

У меня есть несвязанный список, который заполняется.

<asp:DropDownList ID="ddlState" runat="server" style="margin-left: 81px" 
onselectedindexchanged="ddlState_SelectedIndexChanged"
CssClass="styled-select">
</asp:DropDownList>

<asp:DropDownList ID="ddlManagerName" runat="server" Height="22px"
style="margin-left: 08px; width:auto;" ></asp:DropDownList>

и javascript, который запускается, чтобы получить идентификатор нажатием кнопки

function validateDynamic() {

var getState = document.getElementById('<%=ddlState.ClientID %>').selectedIndex;
var getManager = document.getElementById('<%=ddlManagerName.ClientID %>').selectedIndex;
if(getState == 0)
{
alert("State is a required field !");

}

if(getManager == 0)
{
alert("Manager Name is a required field !");

}

return false;
}

Я пробовал больше всего использовать из источника

name = "ctl00 $ MainContent $ ddlState" id = "MainContent_ddlState" и имя и id и все, что я получаю, не определены.

Вот код кнопки, который вызывает вызовы функции

  <asp:Button id="btnSaveTM" runat="server" Text="Add Team Member" class="btn"   onmouseover="this.className='btn btnhov'"
onmouseout="this.className='btn'" style=" Height:34px" OnClientClick="validateDynamic();"
onclick="btnSaveTM_Click" UseSubmitBehavior="true" CausesValidation="true" />

и когда я отлаживаю, я получаю getState и менеджер как undefined. Любая помощь приветствуется.

спросил(а) 2021-01-14T00:15:56+03:00 2 недели назад
1
Решение
74

Используйте это, чтобы получить выбранное значение DropdownList:

var getState = (document.getElementById('<%= ddlState.ClientID %>')  
.options[document.getElementById("<%=ddlState.ClientID%>")
.selectedIndex].value)

ответил(а) 2021-01-14T00:15:56+03:00 2 недели назад
43

Вы посмотрели исходный код, возвращенный сервером? Является ли идентификатор в сценарии совпадением идентификатора визуализируемого элемента? Также такие самородки кода, как <%=ddlState.ClientID %>, не работают во внешнем файле сценария. Чтобы заставить их работать, вы должны встроить скрипт на страницу. Они работают только с.aspx файлами. Также вы можете попробовать получить элемент на консоли (например, Chrome DevTools). Если вы вернете правильный элемент, вы можете сравнить его с линией в вашем скрипте.

ответил(а) 2021-01-14T00:15:56+03:00 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема