当用户使用ASP.NET

时间:2016-02-12 12:25:47

标签: javascript c# jquery asp.net webforms

我有asp:DropDownList,我的要求是当用户从列表中选择其他内容时,TextBox会显示给用户。但最初隐藏了TextBox

我在下面编写代码,以便在加载页面时隐藏TextBox

txtOtherArea.Attributes.Add("style", "display:none")

但是当我尝试使用JQuery显示此TextBox时,没有任何反应。下面是我的JQuery代码。

$(function () {
    $("#ddlUserArea").click(function () {
        $("#txtOtherArea").fadeIn("slow");
    });
});

我也尝试使用show()代替fadeIn("slow"),但没有选择使用show()方法。

然后我尝试下面的代码来隐藏TextBox

<script type="text/javascript">
        $(function () {
            $("#txtOtherArea").fadeOut(1000);
        });
    </script>

我在Master页面的head部分写了上面的代码。但什么都没发生。

我在这个论坛上阅读了其他主题和问题但不了解可能是因为复杂性太大。我是编程新手,只需在用户从TextBox选择其他时显示DropDownList。请帮忙。

2 个答案:

答案 0 :(得分:0)

因为您正在使用控制的服务器端ID,所以您应该使用客户端ID,如下所示。

$(function () {
    $("#ddlUserArea").click(function () {//YOU SHOULD USE .change() instead
        $("#<%=txtOtherArea.ClientID%>").fadeIn("slow");
    });
});

更好的方法

$(function () {
    var ddl=$("#<%=ddlUserArea.ClientID%>");
    var txt=$("#<%=txtOtherArea.ClientID%>");
    ddl.change(function () {
        if(ddl.val()=="Other"){
            txt.fadeIn("slow");
        }
    });
});

答案 1 :(得分:0)

不要将魔术字符串用于id,而是使用asp.net生成的ClientID作为控件:

var ddlUserArea = "<%=ddlUserArea.ClientID %>";
var txtOtherArea = "<%=txtOtherArea.ClientID %>";

对于下拉列表,您必须使用更改事件:

$("#"+ddlUserArea).change(function () {
        $("#"+txtOtherArea).fadeIn("slow");
});