Вы должны сделать это с помощью JavaScript. This question показывает, как определить, когда изменяется значение текстового поля. This question рассказывает нам, как определить, пусто ли текстовое поле или нет. This demo показывает нам, как скрыть и показать вещи с помощью jQuery.
Обратите внимание, что я сделал ClientIdMode="static"
для элементов управления, чтобы избежать наличия разных идентификаторов на стороне клиента, чем на сервере. И вместо того, чтобы использовать свойство Visible на флажке, я использую CSS display: none
. 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();
}
});
});
«Все будет в порядке». Нет, это плохой способ подумать об этом. Если взаимодействие с сервером не требуется, тогда * не включайте * сервер. Где ваша попытка сделать эту работу? – mason
'$
Telefon: asp: TextBox>
Это не попытка. Это только ваша разметка, из которой вы начинаете. Сделайте попытку выполнить то, что вы хотите. Вы четко знаете, что это можно сделать с помощью JavaScript. Вы знаете, что инициирующее действие - [когда изменяется значение текстового поля] (http://stackoverflow.com/questions/1481152). И знаете, что действие, которое вы хотите сделать, - проверить, пусто ли текстовое поле или нет, а затем сделать флажок и некоторый текст видимый или нет. Вы знаете все части. – mason