none
Como corregir el error de autocomplete jquery- Tipo de error : no es una funcion RRS feed

  • Pregunta

  • Ojala me podría ayudar ya que apenas empiezo a desarrollar en este lenguaje y tengo la duda de como corregirlo, el codigo que tengo es así:

      $(function () {
                $('#<%=txtNombreTarea.ClientID%>').autocomplete({
                     source: function (request, response) {
                         $.ajax({
                             url: "TareasPendientes.aspx/autocomp",
                             data: "{ 'nombre':'" + request.term + "'}",
                             dataType: "json",
                             type: "POST",
                             contentType: "application/json; charset=utf-8",
                             success: function (data) {
                                 response($.map(data.d, function (item) {
                                     return { value: item }
                                 }))
                             },
                             error: function (XMLHttpRequest, textStatus, errorThrown) {
                                 alert(textStatus);
                             }
                         });
                     }
                 });
             });

    viernes, 20 de noviembre de 2015 22:19

Respuestas

Todas las respuestas

  • quiero autompletar mi textbox

    txtNombreTarea

    tengo este javascript en mi formulario de mi pagina maestra

       $(function () {
                $('#<%=txtNombreTarea.ClientID%>').autocomplete({
                    minLength: 1,
                    source: function (request, response) {
                        $.ajax({
                            url: "TareasPendientes.aspx.cs/GetName",
                            data: "{ 'nom':'" + request.term + "'}",
                            dataType: "json",
                            type: "POST",
                            contentType: "application/json; charset=utf-8",
                            success: function (data) {
                                response($.map(data.d,function(item)
                                {
                                    return {value : item}
                                }))
                            },
                            error: function (XMLHttpRequest, textStatus, errorThrown) {
                                alert(textStatus);
                            }
                        });
                    }
                });
            });
        </script>

    y este metodo, en la clase del formulario


         [WebMethod]
         [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
         public static List<string> GetName(string nom)
         {
             List<string> allNames = new List<string>();
             using (LnqDatosAdministracionDataContext datos = new LnqDatosAdministracionDataContext())
             {
                 allNames = (from p in datos.Proyecto
                             where p.NombreProyecto.StartsWith(nom)
                                   //where p.NombreProyecto.StartsWith(nom)
                                   select p.NombreProyecto).ToList();
             }
             return allNames;
         }

    pero el detalle es que cuando empiezo a escribir en el textbox no pasa nada,

    mi duda es, si el javascript debe ir en una parte especifica del formulario de la pagina maestra.

    o como saber si me esta devolviendo valores mi metodo.

    viernes, 20 de noviembre de 2015 21:00
  • hola

    pero nunca pasa nada ? o quizas si presionas enter si desplega el autocomplete

    validaste sino hay un error de javascript, podrias validarlo con el developer tools (al cual accedes con F12) con la solapa Console

    quizas un error evita que aparezca el desplegable

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 20 de noviembre de 2015 21:22
  • Hola

    Tu script que se registre en el evento ready de este modo.

    $(document).ready(function(){
       $('#<%=txtNombreTarea.ClientID%>').autocomplete({
                     minLength: 1,
                     source: function (request, response) {
                         $.ajax({
                             url: "TareasPendientes.aspx.cs/GetName",
                             data: { nom: request.term },
                             dataType: "json",
                             type: "POST",
                             contentType: "application/json; charset=utf-8",
                             success: function (data) {
                                 response($.map(data.d,function(item)
                                 {
                                      return { label: item, value: item };
    
                                 }))
                             },
                             error: function (XMLHttpRequest, textStatus, errorThrown) {
                                 alert(textStatus);
                             }
                         });
                     }
                 });
    
    });

    Para saber si esta regresando algo te recomiendo ingreses un breakpoint en tu codigo que te da los datos, para saber si llega y si llega bien y tambien si este devuelve valores.

    Saludos

    viernes, 20 de noviembre de 2015 22:08
  • hola Norberto

    esa correcta la forma de definir el ready

    usar

    $(document).ready(function(){

    o

    $(function () {

    son equivalentes

    lo podras ver en la documentacion

    https://api.jquery.com/ready/

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 20 de noviembre de 2015 23:44
  • hola

    puedes detectar donde menciona ese mensaje ?

    si has usado este ejemplo de base

    [ASP.NET] PopUp Edición - Usando Jquery UI Dialog

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP viernes, 20 de noviembre de 2015 23:52
    • Marcado como respuesta Sara C_Z viernes, 4 de diciembre de 2015 21:26
    viernes, 20 de noviembre de 2015 23:46
  • hola Norberto

    esa correcta la forma de definir el ready

    usar

    $(document).ready(function(){

    o

    $(function () {

    son equivalentes

    lo podras ver en la documentacion

    https://api.jquery.com/ready/

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Hola Leandro

    Muchas gracias, no lo sabia, me habia quedado con la idea de que si no se define que se debe ejecutar en el ready de la pagina se tomaba de manera secuencial.

    Me alegra aprender algo Nuevo cada dia, de antemano muchas gracias.

    Saludos

    sábado, 21 de noviembre de 2015 0:08