jQuery表单提交$ .ajax不起作用

时间:2014-07-05 15:53:59

标签: jquery html ajax

首先,我希望我对jQuery不够熟悉,因为我很少使用它。我有以下代码,当我尝试使用$ .ajax()函数时,显然不起作用,但当我使用$ .post()时,它完美无缺。我相信这可能与我在j 1.8之前研究jQuery的事实有关,我几乎没有研究$ .ajax函数,从那以后我就没用过它。

在ajax.php中,我有一个虚拟文本,看看ajax.php是否正在响应

检查api文档后,由于提供的信息量太大,这似乎有点令人困惑。

如果有人能够查看我的代码并指出我可能存在的错误并建议我找到解决方案,我将不胜感激。

js小提琴来源:http://jsfiddle.net/user16arts/Xuk66/

HTML:

<form method="post" action="ajax.php">
<input type="text" name="name" value="name" defVal="name" maxlength="16">
<input type="submit" value="submit">
<p class="submitErr"></p>

jQuery的:

$(document).ready(function () {
$('body').fadeIn(300);

$('input').focusin(function () {
    if ($(this).val() == $(this).attr('defVal')) {
        $(this).val('');
    }
}).focusout(function () {
    if ($(this).val() === '') {
        $(this).val($(this).attr('defVal'));
    }
});

$('form').submit(function (e) {

    var inputField = $(this).find('input[type="text"]');
    if ($(inputField[0]).val() == $(inputField[0]).attr('defVal')) {

        var err_element = $(this).find('p.submitErr');
        $(err_element).html('ERROR::INVALID SUBMIT VALUE!').click(function () {
            $(this).hide();
        }).fadeIn(300).delay(3000).fadeOut(300);

    } else {

        $.ajax({
            url: $(this).attr('action'),
            data: '1=1',
            type: 'POST',

            statusCode: {
                404: function () {
                    alert('ajax:: error 404!');
                }
            },

            complete: function () {
                $('div.content').fadeIn(300);
            },

            sucess: function (data) {
                $('div.content').html(data);
            },

            error: function () {
                alert('ajax error');
            }
        }); /*  END OF $.ajax  */

    }

    e.preventDefault();
});
});

1 个答案:

答案 0 :(得分:2)

你的问题在成功部分,你有一个拼写错误。

改变这个:

sucess: function (data) {
    $('div.content').html(data);
},

为:

success: function (data) {
    $('div.content').html(data);
},

也不知道你的ajax.php部分是什么,但是如果你的目的是发送一个值为1的变量1然后附加响应,那就在你的ajax.php中这样做:

$value = $_POST['1'];
echo $value;