Как использовать .Live с автозаполнением в JQuery? - PullRequest
0 голосов
/ 10 сентября 2011

Я хочу использовать автозаполнение с функцией .live, но это дает синтаксическую ошибку

$("input[name=point]").live(function() {
    $(this).autocomplete({
        minLength:0,   //for local data
        delay:0,      //for local data
        source:function(request,response){
            //var param= {"action":"getSalePoints"};
            $.getJSON("controllers/Order.controller.php?action=getSalePoints",request,function(result){
                //create array for response objects
                var suggestions = [];
                //process response
                $.each(result, function(i, val){                                
                    //alert(val.number);
                    suggestions.push(val.number);
                });

                //pass array to callback
                response(suggestions);
            });


        },
        select: function( event, ui ) {
            var param={
                "action":"getSalePointNo",
                "point":ui.item.value
                };
            $.getJSON("controllers/Order.controller.php",param,function(result){            
                if(result == "0"){
                    $('#resultMsg').attr('class','errorMsg');
                }
                else{
                    alert(result);
                    $('[name=pointNo]', $(this).parents(".bill")).val(no);
                }

            });
        }
    });
});

Ответы [ 2 ]

6 голосов
/ 10 сентября 2011

Так как 'mu is short' предложено, вы не предоставляете тип события для живой функции, вы можете попробовать использовать 'focus' в качестве типа события, try:

$("input[name=point]").live("focus", function() {
$(this).autocomplete({
    minLength:0,   //for local data
    delay:0,      //for local data
    source:function(request,response){
        //var param= {"action":"getSalePoints"};
        $.getJSON("controllers/Order.controller.php?action=getSalePoints",request,function(result){
            //create array for response objects
            var suggestions = [];
            //process response
            $.each(result, function(i, val){                                
                //alert(val.number);
                suggestions.push(val.number);
            });

            //pass array to callback
            response(suggestions);
        });


    },
    select: function( event, ui ) {
        var param={
            "action":"getSalePointNo",
            "point":ui.item.value
            };
        $.getJSON("controllers/Order.controller.php",param,function(result){            
            if(result == "0"){
                $('#resultMsg').attr('class','errorMsg');
            }
            else{
                alert(result);
                $('[name=pointNo]', $(this).parents(".bill")).val(no);
            }

        });
    }
});

});

1 голос
/ 10 сентября 2011

Функция live принимает два аргумента :

.live( eventType, handler )
Описание: Присоединить обработчикна событие для всех элементов, которые соответствуют текущему селектору, сейчас и в будущем.

Вы не предоставляете eventType, поэтому вы будете вызывать ошибку внутри jQuery, когда он пытаетсяработать с функцией в виде строки и значением undefined в качестве функции.

...