Compartilhar via


Permitir somente determinados caracteres em uma caixa de texto (C#)

por Christian Wenz

Baixar PDF

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álidos
  • LowercaseLetters Somente letras minúsculas
  • Numbers somente dígitos
  • UppercaseLetters 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

Somente dígitos podem ser inseridos (clique para exibir a imagem em tamanho real)