Pessoal, vou dar uma dica de como podemos de forma simples remover caracteres acentuados de um campo durante a digitação. Para isso contarei com a ajuda de uma função Java Script.
A função que desenvolverei executará as seguintes tarefas:
1 – Pegar o valor digitado no campo texto;
2 – Localizar o caractere acentuado, conforme especificado dentro da variável “acento” da função;
3 – Substituir o caractere acentua do pelo caractere não acentuado correspondente, na variável “semacento”;
4 – Por fim, retornar o texto sem acentos para o campo de origem.
Veja a função Java Script a seguir:
<script type="text/javascript" language="javascript">
function retirarAcentos(campo) {
var texto = campo.value;
var acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ';
var semacento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC';
var nova='';
for (i = 0; i < texto.length; i++) {
if (acento.search(texto.substr(i, 1)) >= 0) {
nova += semacento.substr(acento.search(texto.substr(i, 1)), 1);
}
else {
nova += texto.substr(i, 1);
}
}
campo.value = nova;
}
</script>
Lembre-se o tag <script> deve estar contido dentro do tag <head> da página.
Adicionarei um objeto do tipo TextBox à página .aspx, que receberá por padrão o nome de objeto “TextBox1”:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form>
O próximo passo é associar a chamada da função Java Script ao campo “TextBox1” da página. Para isso teremos que atribuir ao campo texto a tarefa de executar o evento “onkeyup”, que ira díspar a função.
Para isso utilizarei o evento Load da página ASP.NET. Conforme código a seguir:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
TextBox1.Attributes.Add("onkeyup", "retirarAcentos(this);")
End If
End Sub
Você poderá ver mais exemplos de como trabalhar com funções Java Script no ASP.NET na seção Java Script do blog.
Concluído! Agora basta executar a página e ver o resultado.
Espero que aproveitem a dica!