Функция Javascript не вызывается в jQuery $ .submit - PullRequest
0 голосов
/ 11 марта 2011

Привет, Опять же, я искал решение, чтобы выяснить, почему функция не вызывается ... и угадайте, что я не нашел.

У меня есть форма, которую я отправляю, используя jQuery Ajax. При ошибке я получаю все локальные данные, получаю их, сортирую и показываю пользователю.

Вот пример кода:

$.ajax({
            type: "POST",
            url: "http://xxx/register.php",
            data: form,
            success: function(msg){
                //console.log("Data Saved: " + msg);
                $.iGrowl(2,stringdata[4]);

                var data = parseJSON(msg);

                if(data.msg.score != undefined){
                    var cpt = 0;
                    $.each(data.msg.score, function(index,el){
                        if(cpt<8){
                            if(el.selected)
                                $('tbody').append('<tr class="win"><td>' + el.name + '</td><td>' + el.score + '</td></tr>');
                            else
                                $('tbody').append('<tr><td>' + el.name + '</td><td>' + el.score + '</td></tr>');
                        }
                    });
                }
                else{
                            $.iGrowl(3,"Erreur inconnue...");
                }
                $("#scorediv").css("visibility","visible");

                $( "#formule" ).css('opacity',0);

        $( "#scorediv" ).css('opacity',1);

            },
            error: function(data) {             
                cpt = 0;
                var i = 0;
                score.each(function(r){
                    arrayScore[i] = r;
                    i++;
                });

                arrayScore.sort(function(a, b){
                    console.log("sorting...");
                    if(a[3])
                    {
                        if(b[3])
                        {           
                            return (b[3].value - a[3].value); //causes an array to be sorted numerically and descending
                        }
                    }
                });
                $.each(arrayScore, function(index,el){
                //arrayScore.forEach(function(el) {
                //score.each(function(el){ 
                    if(cpt<8)
                    {   
                        if(el[2].value == form[2].value)
                            $('tbody').append('<tr class="win"><td>' + el[1].value + '</td><td>' + el[3].value + '</td></tr>');
                        else
                            $('tbody').append('<tr><td>' + el[1].value + '</td><td>' + el[3].value + '</td></tr>');
                        cpt++;
                    }
                    else
                        return false;
                });


                var user = form;
                store.save(user, function(r) {
                });

                $.iGrowl(3,stringdata[5]);

                $("#scorediv").css("visibility","visible");
                $("#formule").css('opacity',0);
                $( "#scorediv" ).css('opacity',1);
            }
        });

Мой массив никогда не сортируется. Если я изменю эту часть:

var i = 0;
score.each(function(r){
     arrayScore[i] = r;
     i++;
});

этим:

score.each(function(r){
     arrayScore.push(r);
});

arrayScore никогда не заполняется.

Я пытаюсь выполнить каждую строку в консоли шаг за шагом, это работает .... Я немного схожу с ума ... и я действительно не знаю, что могло произойти?

Любая помощь будет благодарна!

P.S .: Я использую jQuery1.5 + Lawnchair и CSS3 анимацию. Код проверен на Safari и Chrome.

Спасибо!

1 Ответ

0 голосов
/ 11 марта 2011

Объекты массива Javascript не поддерживают метод с именем each.Вы должны попробовать

$.each(score, function(index, value){...});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...