我需要在checkbox
填充后才能显示textbox
及其附近的文字。否则它应该是隐形的。
<p>Telefon:<asp:TextBox ID="txtPhone" runat="server"></asp:TextBox></p>
<asp:CheckBox ID="CheckBox2" runat="server" Visible="False" Text="bla bla"/>
无论是代码隐藏还是javascript都可以。
答案 0 :(得分:2)
Mason的回答对我来说是部分工作,这意味着ID是静态的,它可以在jQuery中达到两个条件。但是,我的HTML使用带有<span></span>
元素的CheckBox2进行渲染。所以我必须这样做才能使它发挥作用。
<p>Telefon:<asp:TextBox ID="txtPhone" ClientIdMode="static" runat="server"></asp:TextBox>
<asp:CheckBox ID="CheckBox2" ClientIdMode="static" runat="server" Text="blabla" style="display: none;" />
$(function () {
$('#txtPhone').on('input propertychange paste', function () {
if ($('#txtPhone').val()) {
$("#CheckBox2").parent().show();
}
else {
$("#CheckBox2").parent().hide();
}
});
});
答案 1 :(得分:1)
您应该使用JavaScript执行此操作。 This question告诉我们如何检测文本框值的变化。 This question告诉我们如何判断文本框是否为空。 This demo向我们展示了如何使用jQuery隐藏和显示内容。
请注意,我为控件设置了ClientIdMode="static"
,以避免客户端上的ID与服务器上的ID不同。而不是使用复选框上的Visible属性,我使用display: none
CSS。 Visible="false"
甚至不会将复选框的标记发送到客户端,我们需要该标记,以便我们可以在没有回发的情况下显示它。
<p>Telefon:<asp:TextBox ID="txtPhone" ClientIdMode="static" runat="server"></asp:TextBox></p>
<asp:CheckBox ID="CheckBox2" ClientIdMode="static" runat="server" Text="bla bla" style="display: none" />
$(function() {
$('#txtPhone').on('input propertychange paste', function() {
if($('#txtPhone').val()){
$("#CheckBox2").show();
}
else{
$("#CheckBox2").hide();
}
});
});