Resolvido - JavaScript para alteração de formulário

2 respostas
Bird89du

Galera,
Preciso retirar os acentos de um campo de formulário e resolvi fazer com javaScript,
Método javaScript:

function retirarAcentos(){ var campo = document.forms[0].msg.value; com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ'; sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC'; novaPalavra=''; for(i=0;i<campo.length;i++) { if (com_acento.search(campo.substr(i,1))>=0) { novaPalavra += sem_acento.substr(com_acento.search(campo.substr(i,1)),1); } else { novaPalavra+=campo.substr(i,1); } } return novaPalavra; }

Eu acho que o método está certo pois se eu fizer um outro método para teste:

function teste() { alert(retirarAcentos()); }
Ele me retorna o alerta com os valores sem acento.

O problema é o seguinte, eu faço o POST e quando é recuperado na outra página vem com acento.

<form action="/ouvidoria/teste.php" method="post" onSubmit="retirarAcentos();">

Alguém sabe qual o problema?

Valeu

2 Respostas

L

Bird89du:
Galera,
Preciso retirar os acentos de um campo de formulário e resolvi fazer com javaScript,
Método javaScript:

function retirarAcentos(){ var campo = document.forms[0].msg.value; com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ'; sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC'; novaPalavra=''; for(i=0;i<campo.length;i++) { if (com_acento.search(campo.substr(i,1))>=0) { novaPalavra += sem_acento.substr(com_acento.search(campo.substr(i,1)),1); } else { novaPalavra+=campo.substr(i,1); } } return novaPalavra; }

Eu acho que o método está certo pois se eu fizer um outro método para teste:

function teste() { alert(retirarAcentos()); }
Ele me retorna o alerta com os valores sem acento.

O problema é o seguinte, eu faço o POST e quando é recuperado na outra página vem com acento.

<form action="/ouvidoria/teste.php" method="post" onSubmit="retirarAcentos();">

Alguém sabe qual o problema?

Valeu

Ola vc esta esquecendo de atribuir o novo valor para o campo.

function retirarAcentos(){ var campo = document.forms[0].msg.value; com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ'; sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC'; novaPalavra=''; for(i=0;i<campo.length;i++) { if (com_acento.search(campo.substr(i,1))>=0) { novaPalavra += sem_acento.substr(com_acento.search(campo.substr(i,1)),1); } else { novaPalavra+=campo.substr(i,1); } } // Atrinuindo o valor para o campo. document.forms[0].msg.value = novaPalavra; return novaPalavra; }

Bird89du

É isso mesmo Leandolw,

muito obrigado

Criado 9 de novembro de 2009
Ultima resposta 9 de nov. de 2009
Respostas 2
Participantes 2