Problema con acentos en jquery Autocomplete

Posted By Dark

Date: Septiembre 8th, 2009

Category: JQuery

Hace unos días que he estado trabajando con el plugin Autocomplete de jquery, y me encontre con el pequeño problema de que no envía correctamente los caracteres acentuados. Para el caso las paginas html de la aplicación y los servlets estan codificados con “UTF-8″. Así que después de investigar un poco descubri que basta con modificar el plugin y agregar la opcion “type” con “POST” a la llamada ajax localizada en la funcion request tal como sigue:

function request(term, success, failure) {
...
$.ajax({
 mode: "abort",
 type:"POST",
 port: "autocomplete" + input.name,
 ...

Ya que el plugin no tiene definido el tipo, usa “GET” por defecto el cual no tiene establecido el Charset, por lo cual se generan problemas al buscar.

Pues eso es todo, espero que les sea de utilidad.

8 Responses to “Problema con acentos en jquery Autocomplete”

  1. Rafael Says:

    Muchas gracias fiera, me estaba volviendo loco…la verdad es que tenía el mismo problema que tú y bueno. !Solucionado!. Pon publicidad en tu página para que pueda hacer click porque por esto te mereces algo amigo…jeje

    Te añado a favoritos, me pasaré de vez en cuando a ver lo que pones.

  2. Dark Says:

    Gracias por comentar y que bien que te sirvió. De lo de la publicidad habrá que platicarlo con los integrantes del equipo (jajaja)… Saludos

  3. vrotero Says:

    ¡Muchísimas gracias! Tenía el mismo problema: al utilizar $.post me devolvía una cadena que planteaba problemas de reconocimiento en las búsquedas y ya me estaba volviendo loco.

    Un saludo.

  4. Dark Says:

    Gracias por comentar.

    Saludos.

  5. Juan Says:

    Hola, que tal te escribo porque estoy desarrollando un sitio y si bien aún no me topé con el problema que vos decis supongo que en el corto plazo tendré ese problema ya que es sitio es en español.

    Mi pregunta va diriga a como se hace para pasar parámetros cuando el método que se utiliza para envíar los datos es POST (tal como vos indicaste que se debería modificar el método). Ya que por defecto la forma que conozco, usando get es incluir el parámetro en la misma url que procesará la petición:

    $(“#miTxt”).autocomplete(“fns/filtrarDatos.php?parametro=valor”, {

    Pero esto es solo válido para Get.

    Gracias desde ya

  6. Juan Says:

    Encontré la respuesta a mi duda asi que dejo el código por las dudas a alguien le sirva:

    $(“miTxt”).autocomplete(“fns/filtrarDatos.php, {
    minChars: 0,
    max: 12,
    extraParams: {
    action: ‘autocompletarTxt’
    }

    });

    Toda la magia esta en indicarle los parámetros que se desean sean procesados por el servlet dentro de extraParams:

    La respusta la encontré en la página misma del plugin:

    Dependencies between fields

    Often one autocompleted field depends on the value of another field. In that case, the extraParams option can provide the necessary dynamic parameter:

    Consider an example where the states-field reuses the value entered into the country field:

    $(“#states”).autocomplete(url, {
    extraParams: {
    country: function() { return $(“#country”).val(); }
    }
    });
    That way the serverside can return all states that have a country by that name.

    http://docs.jquery.com/Plugins/Autocomplete#API_Documentation

  7. Dark Says:

    Excelente, que bueno que encontraste la respuesta rápidamente y gracias por comentar

  8. cevwiko Says:

    6oC5FT ivrztvehmktr, [url=http://ejubcpbazrxe.com/]ejubcpbazrxe[/url], [link=http://bleatnbzpujq.com/]bleatnbzpujq[/link], http://exyjdpooetzj.com/

Deja un comentario