我有一个未填充的列表,可以填充。
<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运行以获取按钮上的id
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 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视为未定义。任何帮助表示赞赏。
答案 0 :(得分:2)
使用它来获取DropdownList的选定值:
var getState = (document.getElementById('<%= ddlState.ClientID %>')
.options[document.getElementById("<%=ddlState.ClientID%>")
.selectedIndex].value)
答案 1 :(得分:0)
你看过服务器返回的源代码了吗?脚本中的ID是否与渲染元素的ID匹配?此外,像<%=ddlState.ClientID %>
这样的代码块也无法在外部脚本文件中运行。要让它们工作,您必须在页面上嵌入脚本。它们只能与.aspx文件一起使用。
您也可以尝试在控制台上获取元素(如Chrome DevTools)。如果您返回了正确的元素,则可以将其与脚本中的行进行比较。