2013-07-08 2 views
1

В моей Jsp У меня есть две радио кнопки RB1 и RB2 и два текстовых полей txt1 и txt2 ...Jquery радио и текстовые поля

Как отключить мой текст окна txt2 когда RB2 проверяли?

Вот мой код:

 <asp:TextBox runat="server" ID="txt1""></asp:TextBox> 

     <asp:TextBox runat="server" ID="txt2"></asp:TextBox> 

     <asp:RadioButton ID="rb1" Text="hello" runat="server" /> 

     <asp:RadioButton ID="rb2" Text="world" runat="server" /> 

ответ

2

Вы можете использовать .change события из JQuery:

$("#<%= rb2.ClientID %>").change(function() { 
    $("#<%= txt2.ClientID %>").prop("disabled", this.checked); 
}); 
+1

Если вы не любите требование ASP.NET для разрешения идентификатора элемента, вы можете изменить его в конфигурации проекта. 'system.web -> pages clientIDMode =" Static "'. Будет вызывать .Net не генерировать идентификатор для вас, а использовать то, что вы назначили элементу управления. – Justin

2

Bind этом случае в изменения

$('[id*=rb2]').on('change', function() { 
    var txt = $('[id*=txt2]'); 

    txt.prop('disabled', this.checked) : 
}); 

Кроме того, поскольку элементы управления имеют атрибут runa=server s, убедитесь, что вы используете атрибут, содержащий селектор.

И не забудьте указать код внутри DOM готовый обработчик.

0

Возможно, было бы лучше использовать делегацию событий здесь.

$(document).on('change', '[id^="rb"]', function() { 
    var txt = $("#txt" + event.target.id.split(/rb/)[1]); 

    txt.prop('disabled', this.checked) : 
}); 

В любое время, когда какая-либо из переключателей изменяется, соответствующее поле ввода будет обнаружено и отключено.

Смежные вопросы