<script type="text/javascript">
function ddl(id) {
// var id = document.getElementById('<%=DDLquestionType.ClientID%>').value;
if (id == "Open") {
AmericanAnswer.style.display = 'none';
document.getElementById('Answer1_Btn').style.visibility = false;
}
alert(id);
}
</script>
&#13;
<asp:DropDownList ID="DDLquestionType" CssClass="ddlQuestionType box" runat="server" AutoPostBack="True" onchange="ddl(this)" >
<asp:ListItem Text="American" Value="American"></asp:ListItem>
<asp:ListItem Text="Open" Value="Open"></asp:ListItem>
<asp:ListItem Text="Yes/No" Value="YesNo"></asp:ListItem>
<asp:ListItem Text="Numerical" Value="Numerical"></asp:ListItem>
</asp:DropDownList>
&#13;
我有这个java脚本函数:
我尝试调用下拉列表选择更改
它不起作用。 我也试过了 平变化=&#34;的javascript:DDL()&#34;并且没有参数的功能, ononchange =&#34;的javascript:DDL(本);&#34 ;, ononchange =&#34;的javascript:DDL(THIS.VALUE);&#34 ;, 和许多其他人。 我是java脚本的新手,任何带有解释的链接也将受到高度赞赏
答案 0 :(得分:0)
当您将this
作为参数传递时,您将DropDownList本身传递给Javascript函数。因此,您无需使用id
来检索控件。您可以使用value
属性获取所选项目的值,并且可以使用options
数组访问这些项目。
<asp:DropDownList runat="server" onchange="processChange(this);" ... >
function processChange(ddl) {
if (ddl.value == 'Open') {
var americanItem = ddl.options[0];
...
}
}
由于您已为DropDownList设置了AutoPostBack="true"
,因此您在Javascript函数中所做的某些更改可能会在回发后丢失。您可以尝试使用AutoPostBack="false"
来查看差异。
答案 1 :(得分:0)
您需要传递此参数或id,您只需调用该函数并在onchange()事件中调用该函数。 在javascript中使用下拉列表的ID来获取下拉列表的值。
<script type="text/javascript">
function processchange(value)
{
if(ddl.value=="American")
// your code
}
</script>
<dropdownlist id="ddl" onchange="processchange()" >
//enter your dropdown items
</dropdownlist>
&#13;