Permitir somente determinados caracteres em uma caixa de texto (C#)
por Christian Wenz
ASP.NET controles de validação podem garantir que apenas determinados caracteres sejam permitidos na entrada do usuário. No entanto, isso ainda não impede que os usuários digitem caracteres inválidos e tentem enviar o formulário.
Visão geral
ASP.NET controles de validação podem garantir que apenas determinados caracteres sejam permitidos na entrada do usuário. No entanto, isso ainda não impede que os usuários digitem caracteres inválidos e tentem enviar o formulário.
Etapas
O ASP.NET Kit de Ferramentas de Controle AJAX contém o FilteredTextBox
controle que estende uma caixa de texto. Uma vez ativado, somente um determinado conjunto de caracteres pode ser inserido no campo.
Para que isso funcione, primeiro precisamos da ASP.NET AJAX ScriptManager
que carrega as bibliotecas JavaScript que também são usadas pelo kit de ferramentas de controle AJAX do ASP.NET:
<asp:ScriptManager ID="asm" runat="server" />
Em seguida, precisamos de uma caixa de texto:
Numbers only: <asp:TextBox ID="TextBox1" runat="server" />
Por fim, o FilteredTextBoxExtender
controle cuida da restrição dos caracteres que o usuário tem permissão para digitar. Primeiro, defina o TargetControlID
atributo como o ID
do TextBox
controle . Em seguida, escolha um dos valores disponíveis FilterType
:
Custom
Padrão; você precisa fornecer uma lista de caracteres válidosLowercaseLetters
Somente letras minúsculasNumbers
somente dígitosUppercaseLetters
somente letras maiúsculas
Se o Custom FilterType
for usado, a ValidChars
propriedade deverá ser definida e fornecer uma lista de caracteres que podem ser digitado. A propósito: se você tentar colar texto na caixa de texto, todos os caracteres inválidos serão removidos.
Aqui está a marcação para o FilteredTextBoxExtender
controle que permite apenas dígitos (algo que também teria sido possível com FilterType="Numbers"
):
<ajaxToolkit:FilteredTextBoxExtender ID="ftbe" runat="server"
TargetControlID="TextBox1" ValidChars="1234567890" />
Execute a página e tente inserir uma letra se o JavaScript estiver habilitado, ele não funcionará; no entanto, os dígitos aparecem na página. No entanto, observe que a proteção FilteredTextBox
fornecida não é à prova de marcadores: se o JavaScript estiver habilitado, todos os dados poderão ser inseridos na caixa de texto, portanto, você precisará usar meios de validação adicionais, ou seja, ASP. Controles de validação do NET.
Somente dígitos podem ser inseridos (clique para exibir a imagem em tamanho real)