Intenta ver si se arregla declarando el juego de caracteres que usas; dentro del HEAD debes tener
Código HTML:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1>
<meta http-equiv="Script-Content-Type" content="text/javascript; charset=iso-8859-1">
Si no, habrá que filtrar el texto, por ejemplo detectando los acentuados con charCodeAt(). Por ejemplo, este código acepta sólo vocales con o sin acento agudo:
Código PHP:
var aceptadas=[97, 101, 105, 111, 117, 10, 225, 233, 237, 243, 250] //aeiouáéíóú
function lee(x)
{ var vale=0
for (i=0; i<x.length; i++)
{ var car = x.charCodeAt(i)
for (j=0; j<aceptadas.length; j++)
{ if ( car == aceptadas[j] ) { vale++; break }
}
}
if (vale==x.length) alert("Correcto")
else alert("algún carácter no válido")
}
Espero que lo puedas adaptar a tu caso.