Usuário com melhor resposta
habilitar um text box através de uma seleção de RadioButtonList

Pergunta
-
Fala gurizada.
Tu fazendo uma aplicação com um user control.
Nele tem um RadioButtonList com cinco opções. Quando a ultima for selecionada eu preciso habilitar um textBobox multiLine. Tem como fazer com JS?
Esse é o código:
<asp:RadioButtonList id="rblRespostas" runat="server" CssClass="enquete_rdbList">
<asp:ListItem Text="aaaaa" Value="1" />
<asp:ListItem Text="bbbbbb" Value="2" />
<asp:ListItem Text="cccccccc" Value="3" />
<asp:ListItem Text="dddddddddd" Value="4" />
<asp:ListItem Text="eeeeeee" Value="5"/>
</asp:RadioButtonList>
<asp:TextBox id="tbOutors" runat="server" TextMode="multiline"></asp:TextBox>Valeu.
- Editado João Goya segunda-feira, 9 de abril de 2012 14:40
Respostas
-
Cara, aconselho utilizar a técnica de manipular pelo códgo behind, até porque o javascript pode ser desabilitado no browser.
Para evitar o efeito de recaga da página use Ajax com scriptmanager e updatepanel.
Agora se quer mesmo usar Javascript segue uma idéia de como pode ser feito:
<head runat="server"> <title></title> <script type="text/javascript" language="javascript" > function teste(valor) { if (valor == '5') document.getElementById("tbOutors").style.display = ''; else document.getElementById("tbOutors").style.display = 'none'; } </script> </head>
<asp:RadioButtonList id="rblRespostas" runat="server" CssClass="enquete_rdbList" > <asp:ListItem onclick="javascript: teste(this.value);" Text="aaaaa" Value="1" /> <asp:ListItem onclick="javascript: teste(this.value);" Text="bbbbbb" Value="2" /> <asp:ListItem onclick="javascript: teste(this.value);" Text="cccccccc" Value="3" /> <asp:ListItem onclick="javascript: teste(this.value);" Text="dddddddddd" Value="4" /> <asp:ListItem onclick="javascript: teste(this.value);" Text="eeeeeee" Value="5"/> </asp:RadioButtonList> <asp:TextBox id="tbOutors" runat="server" TextMode="multiline" style="display:none;"></asp:TextBox>
Não sei se é a maneira mais robusta ou mesmo a correta. Também sou iniciante. Mas funcionou aqui comigo.
Talvez algum outro colega possa sugerir outra forma, mas testa ai e adapte como achar melhor.
Ninguém falou que seria fácil!
- Marcado como Resposta João Goya segunda-feira, 9 de abril de 2012 19:28
Todas as Respostas
-
NO code behind pdoe ser feito assim:
<asp:RadioButtonList id="rblRespostas" runat="server" CssClass="enquete_rdbList" onselectedindexchanged="rblRespostas_SelectedIndexChanged" AutoPostBack="true">
<asp:TextBox id="tbOutors" runat="server" TextMode="multiline" Visible="false"></asp:TextBox>
protected void rblRespostas_SelectedIndexChanged(object sender, EventArgs e) { if (rblRespostas.SelectedValue == "5") tbOutors.Visible = true; else tbOutors.Visible = false; } }
Seria a maneira mais simples. Via Javascript é possível porém o asp.net altera o nome dos controles quando renderiza a página.
Teria como impedir isto mas não me lembro como. Talvez algum amigo aqui mais experiente posso lembra como isto pode ser feito.
Ninguém falou que seria fácil!
-
-
Cara, aconselho utilizar a técnica de manipular pelo códgo behind, até porque o javascript pode ser desabilitado no browser.
Para evitar o efeito de recaga da página use Ajax com scriptmanager e updatepanel.
Agora se quer mesmo usar Javascript segue uma idéia de como pode ser feito:
<head runat="server"> <title></title> <script type="text/javascript" language="javascript" > function teste(valor) { if (valor == '5') document.getElementById("tbOutors").style.display = ''; else document.getElementById("tbOutors").style.display = 'none'; } </script> </head>
<asp:RadioButtonList id="rblRespostas" runat="server" CssClass="enquete_rdbList" > <asp:ListItem onclick="javascript: teste(this.value);" Text="aaaaa" Value="1" /> <asp:ListItem onclick="javascript: teste(this.value);" Text="bbbbbb" Value="2" /> <asp:ListItem onclick="javascript: teste(this.value);" Text="cccccccc" Value="3" /> <asp:ListItem onclick="javascript: teste(this.value);" Text="dddddddddd" Value="4" /> <asp:ListItem onclick="javascript: teste(this.value);" Text="eeeeeee" Value="5"/> </asp:RadioButtonList> <asp:TextBox id="tbOutors" runat="server" TextMode="multiline" style="display:none;"></asp:TextBox>
Não sei se é a maneira mais robusta ou mesmo a correta. Também sou iniciante. Mas funcionou aqui comigo.
Talvez algum outro colega possa sugerir outra forma, mas testa ai e adapte como achar melhor.
Ninguém falou que seria fácil!
- Marcado como Resposta João Goya segunda-feira, 9 de abril de 2012 19:28