Не удалось получить идентификатор для asp: dropdownlist, который заполняется динамически
У меня есть несвязанный список, который заполняется.
<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. Любая помощь приветствуется.
Используйте это, чтобы получить выбранное значение DropdownList:
var getState = (document.getElementById('<%= ddlState.ClientID %>')
.options[document.getElementById("<%=ddlState.ClientID%>")
.selectedIndex].value)
Вы посмотрели исходный код, возвращенный сервером? Является ли идентификатор в сценарии совпадением идентификатора визуализируемого элемента? Также такие самородки кода, как <%=ddlState.ClientID %>
, не работают во внешнем файле сценария. Чтобы заставить их работать, вы должны встроить скрипт на страницу. Они работают только с.aspx файлами. Также вы можете попробовать получить элемент на консоли (например, Chrome DevTools). Если вы вернете правильный элемент, вы можете сравнить его с линией в вашем скрипте.