jQuery代码冲突

时间:2012-03-04 09:23:29

标签: jquery conflict

通用标题的道歉。

我有两个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 :(得分:0)

您的表单会刷新,因为在到达return false;部分之前,脚本会中断  在某个地方。

使用firebug或类似内容来检测此问题。务必处理所有结果或所有条件。

可能是快速干运行可以检测到的差距。