【问题标题】:Display textbox control when checkbox is checked选中复选框时显示文本框控件
【发布时间】:2013-07-16 02:11:32
【问题描述】:

当 CheckBox 被选中时,我使用以下 JavaScript 显示两个带有日历扩展器的 Textbox 控件。否则,它们将被隐藏。 (我隐藏了包含文本框控件的表格行。)

<script type="text/javascript">
function forVisibleDateChecked(sender) {
    var rowDisplay = document.getElementById('<%= fromDateAndToDate.ClientID %>');
    rowDisplay.style.display = sender.checked ? 'inline' : 'none';
}
</script>

我的 HTML 代码在这里:

    <tr>
        <td class="style2">
            <asp:CheckBox ID="chkVisibleControls" runat="server" 
               checked="false" onclick="forVisibleDateChecked(this)" />
        </td>
    </tr>

    <tr runat="server" id="fromDateAndToDate">
        <td class="style2">
            <asp:TextBox ID="tbxSetFromDate" runat="server"></asp:TextBox>
            <asp:CalendarExtender ID="tbxSetFromDate_CalendarExtender" runat="server" 
                Enabled="True" TargetControlID="tbxSetFromDate">
            </asp:CalendarExtender>

            <asp:TextBox ID="tbxSetToDate" runat="server"></asp:TextBox>
            <asp:CalendarExtender ID="tbxSetToDate_CalendarExtender" runat="server" 
                Enabled="True" TargetControlID="tbxSetToDate">
            </asp:CalendarExtender>
        </td>
    </tr>

如果我没有在Page Load 方法中将表格行Visble 设置为false,它就可以工作。

fromDateAndToDate.Visible = false;

但默认情况下,当页面加载时,这两个日期时间选择器不应该可见,直到用户决定设置日期范围,从日期到日期。任何帮助将不胜感激。

【问题讨论】:

    标签: c# javascript asp.net checkbox hide


    【解决方案1】:

    不让它们作为服务器控制怎么样?您可能需要将一些 asp.net 控件更改为普通的 HTML 控件。

    <script type="text/javascript">
    function forVisibleDateChecked() {
        var rowDisplay = document.getElementById('fromDateAndToDate');
        rowDisplay.style.display = sender.checked ? 'inline' : 'none';
    }
    </script>
    

    HTML:

        <tr id="fromDateAndToDate" style="display:none">
            <td class="style2">
                <asp:TextBox ID="tbxSetFromDate" runat="server"></asp:TextBox>
                <asp:CalendarExtender ID="tbxSetFromDate_CalendarExtender" runat="server" 
                    Enabled="True" TargetControlID="tbxSetFromDate">
                </asp:CalendarExtender>
    
                <asp:TextBox ID="tbxSetToDate" runat="server"></asp:TextBox>
                <asp:CalendarExtender ID="tbxSetToDate_CalendarExtender" runat="server" 
                    Enabled="True" TargetControlID="tbxSetToDate">
                </asp:CalendarExtender>
            </td>
        </tr>
    

    【讨论】:

    • 这是一个非常棒的主意。如果我不将表格行作为服务器控件,它会完美运行。谢谢你的帮助。干杯!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    相关资源
    最近更新 更多