在asp下拉列表中调用javascript函数更改

时间:2016-08-26 15:41:50

标签: javascript asp.net



        <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;
&#13;
&#13;

我有这个java脚本函数:

我尝试调用下拉列表选择更改

它不起作用。 我也试过了     平变化=&#34;的javascript:DDL()&#34;并且没有参数的功能,     ononchange =&#34;的javascript:DDL(本);&#34 ;,     ononchange =&#34;的javascript:DDL(THIS.VALUE);&#34 ;, 和许多其他人。 我是java脚本的新手,任何带有解释的链接也将受到高度赞赏

2 个答案:

答案 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来获取下拉列表的值。

&#13;
&#13;
<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;
&#13;
&#13;