jQuery - $ .ajax();转到下一页提交

时间:2013-10-20 08:09:45

标签: javascript php jquery ajax

如果用户没有阅读条款和条件,我有一个红色的按钮。如果用户单击Acknowledge按钮,它会将日期和时间发布到数据库中,然后以绿色返回一个禁用的按钮。但是,当我提交时,它会直接进入下一页。谁能告诉我我的代码有什么问题?

标记:

<div class="acknowledge">
    <form method="post" name="blitzread" action="blitzread.php" id="submit">
        <input type="hidden" name="emp_id" value="<?php echo $emp_id; ?>">
        <input type="hidden" name="current_time" value="<?php echo $current_time; ?>">
        <button type="submit" name="Submit" class="btn btn-large btn-danger">Acknowledge</button>
    </form>
</div>

使用Javascript:

$('#submit').submit(function() {
    e.preventDefault();
    $.ajax({
        data: $(this).serialize(),
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        success: function(response) {
            $('.acknowledge').html("<button class="btn btn-large btn-success disabled">Acknowledge</button>");
        }
    });
    return false;
});

3 个答案:

答案 0 :(得分:2)

问题是e未定义。

该函数的第一个参数是jQuery事件对象,您可以在其上调用preventDefault()。所以你的代码应该是这样的:

$('#submit').submit(function(e) {
    e.preventDefault();

答案 1 :(得分:1)

您忘记了e参数

$('#submit').submit(function(e) {
    e.preventDefault();
    $.ajax({
        data: $(this).serialize(),
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        success: function(response) {
            $('.acknowledge').html("<button class="btn btn-large btn-success disabled">Acknowledge</button>");
        }
    });
    return false;
});

答案 2 :(得分:1)

您忘记在e中添加function()个参数:

您的代码应该是这样的:

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

    e.preventDefault();
    e.stopPropagation();

    $.ajax({
        data: $(this).serialize(),
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        success: function(response) {
            $('.acknowledge').html('<button class="btn btn-large btn-success disabled">Acknowledge</button>');
        }
    });
    return false;

});

这是小提琴:http://jsfiddle.net/zur4ik/WVssV/