Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ASP.NET服务器控件-基于下拉选择显示隐藏文本框_Javascript_Jquery_Asp.net_Css_Html - Fatal编程技术网

Javascript ASP.NET服务器控件-基于下拉选择显示隐藏文本框

Javascript ASP.NET服务器控件-基于下拉选择显示隐藏文本框,javascript,jquery,asp.net,css,html,Javascript,Jquery,Asp.net,Css,Html,根据用户从下拉列表中的选择,显示/隐藏文本框或整个div部分的最佳方式是什么?我认为服务器控件是不可能的,所以我必须使用常规的客户端HTML控件,对吗?谢谢你的意见。jQuery是最好的选择吗?是否有一种方法可以在默认情况下隐藏Div,然后在用户从下拉列表中选择选项时显示它 <div id="divLimitPrice">Limit Price<br /> <asp:TextBox ID="txtLimitPrice" runat="server"

根据用户从下拉列表中的选择,显示/隐藏文本框或整个div部分的最佳方式是什么?我认为服务器控件是不可能的,所以我必须使用常规的客户端HTML控件,对吗?谢谢你的意见。jQuery是最好的选择吗?是否有一种方法可以在默认情况下隐藏Div,然后在用户从下拉列表中选择选项时显示它

<div id="divLimitPrice">Limit Price<br />
        <asp:TextBox ID="txtLimitPrice" runat="server" ValidationGroup="ValidationGroupOrder"></asp:TextBox>
        &nbsp;<asp:RequiredFieldValidator ID="rfvLimitPrice" runat="server" ControlToValidate="txtLimitPrice" ErrorMessage="This is a required field."></asp:RequiredFieldValidator>
        </div>

<script type="text/javascript">
    $(function () {
        $('[id*="ddPriceType"]').on('change', function () {
            var val = this.value,
                $divLimitPrice = $('[id*="divLimitPrice"]');

            if (val === 1 || val === 2) {
                // Hide div group
                $divLimitPrice.hide();
            } else {
                // Show div group
                $divLimitPrice.show();
            }
        });
    });
</script>

 Price Type<br />
        <asp:DropDownList ID="ddPriceType" runat="server" ValidationGroup="ValidationGroupOrder">
            <asp:ListItem Value="" Text ="Select a Price Type" />
            <asp:ListItem Value="2" text="Type 2" />
            <asp:ListItem Value="3" text="Type 3" />
            <asp:ListItem Value="4" text="Type 4" />
        </asp:DropDownList>
        &nbsp;<asp:RequiredFieldValidator ID="rfvPriceType" runat="server" ControlToValidate="ddPriceType" ErrorMessage="This is a required field."></asp:RequiredFieldValidator>
        <div id="divLimitPrice">Limit Price<br />
        <asp:TextBox ID="txtLimitPrice" runat="server" ValidationGroup="ValidationGroupOrder"></asp:TextBox>
        &nbsp;<asp:RequiredFieldValidator ID="rfvLimitPrice" runat="server" ControlToValidate="txtLimitPrice" ErrorMessage="This is a required field."></asp:RequiredFieldValidator>
        </div>`
限价
$(函数(){ $('[id*=“ddPriceType”]')。在('change',函数(){ var val=此.val值, $divLimitPrice=$('[id*=“divLimitPrice”]'); 如果(val==1 | | val==2){ //隐藏分区组 $divLimitPrice.hide(); }否则{ //显示分区组 $divLimitPrice.show(); } }); }); 价格类型
限价
`

嗯。。我试着修改代码,但我遗漏了一些东西!有什么想法吗?谢谢您的时间。

您可以使用
.jquery
进行此操作

$(function () {
    $('[id*="dropdown"]').on('change', function () {
        var val = this.value,
            $txtbox = $('[id*="txtLimitPrice"]');

        if (val === 1 || val === 2) {
            // Hide text box
            $txtbox.hide();
        } else {
            // Show text box
            $txtbox.show();
        }
    });
});

没有什么是不可能的。你可以做你在问题中提出的任何事情。也不需要切换到普通的HTML控件。如果您想隐藏文本框或div,这并不重要。我将向您展示一个没有aspx控件的简单示例。遵循同样的方法,你会得到你期望的结果

检查此链接

在div标记中,您可以使用任何aspx控件

<div>
<asp:textbox id="TxtSample" runat="server" />
</div>

Or Instead of DIV you can use Panels too

<asp:Panel ID="PnlLogin" runat="server">
 -- --  Your Controls Here
</asp:panel>

或者也可以使用面板代替DIV
--你的控制权在这里

谢谢!我会给它一个快照谢谢你们,非常有用,非常感谢。使用服务器控件可以实现相同的行为。正如答案所示,实现这一点的最佳方法是在客户端使用jQuery。“服务器控件”可以通过切换.Visible属性来模拟此行为。例如,您可以在的SelectedIndexChanged事件的服务器端切换的.Visible属性。然后,您可以将所有内容包装在UpdatePanel中,使其无缝(AJAX)。