1

我有一个被填充的未绑定列表。

<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>

和一个运行以在单击按钮时获取 id 的 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" name 和 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 和 manager 。任何帮助表示赞赏。

4

2 回答 2

2

使用它来获取 DropdownList 的选定值:

var getState = (document.getElementById('<%= ddlState.ClientID %>')  
                     .options[document.getElementById("<%=ddlState.ClientID%>") 
                     .selectedIndex].value)
于 2013-09-11T06:03:54.037 回答
0

你看过服务器返回的源代码吗?脚本中的 ID 是否与渲染元素的 ID 匹配?像代码块这样的代码<%=ddlState.ClientID %>也不能在外部脚本文件中工作。要让它们工作,您必须在页面上嵌入脚本。它们仅适用于 .aspx 文件。您也可以尝试在控制台上获取元素(如 Chrome DevTools)。如果返回了正确的元素,则可以将其与脚本中的行进行比较。

于 2013-09-10T22:43:14.750 回答