Конфликты кода jQuery - PullRequest
       10

Конфликты кода jQuery

1 голос
/ 04 марта 2012

Извинения за общий заголовок.

У меня есть два файла jQuery, один обрабатывает отправку формы и один обрабатывает гиперссылки на страницу.

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

Гиперссылки загружают новые данные страницы в div, эти новые данные страницычасто включает формы, обрабатываемые файлом обработки.

Я не знаю почему, но ~ 60% времени отправка формы будет «обновляться» при нажатии и загружать главную страницу индекса ИЛИ страницу, которую последний раз посещали,Это кажется совершенно случайным.

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

Код представления формы:

$(document).ready(function(){

    $('.ajax_form').submit(function() {

        // check for empty inputs
        var errors = 0;
        $(".ajax_form :input").map(function(){
            if(!$(this).val()) {
                errors++;
            }  
        });

        // if empty inputs inform user
        if(errors > 0){
            $('#results').text("All fields are required");
            return false;
        }

        // hide form and show loader
        $(".ajax_form").slideUp("normal");
        $('#results').html('<span id="load">Loading..</span>');

        // post data to processing file
        $.post(
            'processing.php',
            $(this).serialize(),
            function(data){
                $("#results").slideDown("normal");
                $("#results").html(data)
            }
        );

        return false;

    });

});

Навигационный код:

$(document).ready(function(){

    // if hash is already set, load linked data
    var hash = window.location.hash.substr(1);
    $('#nav li a').each(function(){
        if(hash == $(this).attr('href')){
            var toLoad = hash + '.php';
            $('#content').load(toLoad)
        }
    });

    // each menu item on click load linked data
    $('#nav li a').click(function(){

        var toLoad = $(this).attr('href') + '.php';
        window.location.hash = $(this).attr('href');

        $('#content').prepend('<span id="load">Loading..</span>');
        $('#content').hide();
        $('#content').load(toLoad);
        $('#content').slideDown('normal');

        return false;

    });

});

1 Ответ

0 голосов
/ 04 марта 2012

Ваша форма обновляется, потому что до достижения части return false; сценарии ломаются где-то раньше.

Используйте firebug или аналогичный, чтобы обнаружить это. Обязательно обработайте все результаты или каждое условие.

Может быть быстрый сухой пробег может обнаружить пробелы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...