表单提交即使是'return false' - AJAX

时间:2014-07-02 15:50:53

标签: javascript php jquery ajax

我一直在关注Youtube中的本教程!它只是不想以我想要的方式工作。

我在index.php中得到了这段代码:

<form action="scripts/keys.php" class="ajax" method="post">
    <p>Key:</p>
    <input type="text" name="key" class="key_input" autocomplete="off" autofocus />
    <input type="submit">
</form> 

我的main.js中的代码:

$('form.ajax').on('submit', function(){
    var that = $(this),
        url = that.attr('action'),
        type = that.attr('method'),
        data = {};

    that.find('[key]').each(function(index, value){ 
        var that = $(this),
            name = that.attr(''),
            value  that.val('');

        data[name] = value;
    });

    $.ajax({
        url: url,
        type: type,
        data: data,
        success: function(response) {
            console.log(response);
        }
    });
    return false;
});

最后是我的keys.php:

if(isset($_POST['key'])) {
    echo 'lol';
}

出于某种原因,当我提交表单时,它仍然会将我发送给keys.php,我不明白,当我使用return false时。

有人可以解释我做错了什么吗?不要告诉我正确的代码,只是我需要改变的地方:)

1 个答案:

答案 0 :(得分:3)

语法错误,缺少equalsign

that.find('[key]').each(function(index, value){ 
    var that = $(this),
        name = that.attr(''),
        value  that.val('');  // HERE
//           ^^
    data[name] = value;
});

将PHP更改为

if(isset($_POST['key'])) {
    echo 'lol';
}