JQuery .ajax()函数问题

时间:2012-04-09 01:55:18

标签: jquery html

过去几个小时我一直在解决这个问题,令人沮丧的是找不到解决方案。我正在尝试使用JQuery .ajax()函数提交表单,但它没有提交,继承人代码,任何建议都会非常感激:

JS:

$(document).ready(function() {

    var livelistURL = "/scripts/livelist.php?guestlist=<?php echo $_GET['guestlist']; ?>";
    var names = '';
    var dot = '.';

    $("#livelist").load(livelistURL);
    $("input#name").select().focus();

    $("#addname").submit(function(event){
        event.preventDefault();

        $("input#name").blur();
        $('#working').show();
        $('#event-box').fadeTo('fast', 0.5);  

        var guestlist = '<?php echo $_GET['guestlist']; ?>';
        var name = $('input#name');
        var by = '<?php echo $email; ?>';

        var data = 'name=' + name.val() + '&guestlist=' + guestlist.val() + '&by=' + by.val();  

        $("input#name").blur();

        $.ajax({
            url: "/scripts/addname.php",
            type: "post",
            data: data,
            success: function(){
                var value = $("input#name").val().toUpperCase();;
                $("span.success").text(value);

                if (names == '') {
                    names = value;
                }
                else {
                    names = ' ' + value + ', ' + names;
                    $("span#dot").text(dot);
                }

                $("span#name1").text(names);
                $('#working').fadeOut('fast');
                $('#success').fadeIn('fast');
                $('#added-names').fadeIn('fast');
                $('#success').delay('600').fadeOut('fast');
                $('#event-box').delay('600').fadeTo('fast', 1.0);
            },
            error: function(){
                $('#working').fadeOut('fast');
                $('#error').fadeIn('fast');
                $('#error').delay('600').fadeOut('fast');
            },
            complete: function(){
                $("input#name").val('');
                $("input#name").select().focus();
            }
        });
    });
}); // end

表格HTML:

<form id="addname">
            <input id="name" name="name" class="tagcheck" style="z-index: 1000;" minlength="5" maxlength="60" placeholder="Add Name" />
        </form>

2 个答案:

答案 0 :(得分:1)

安装Firebug,然后检查控制台。这有助于您调试Ajax请求 - 我使用EXTENSIVELY。

尝试删除所有其他Javascript内容,将其删除直到可行。此外,addname.php中可能存在错误

答案 1 :(得分:0)

我在这一行中看到了一些问题:

var data = 'name=' + name.val() + '&guestlist=' + guestlist.val() + '&by=' + by.val();

请注意,guestlist和变量不是jQuery变量。所以你不能使用val(),它会导致错误。从两者中取出val()应该可以解决这个问题。

var data = 'name=' + name.val() + '&guestlist=' + guestlist + '&by=' + by;  

我假设你的表单有某种提交按钮吗?你刚才没有包含表单HTML的那部分?