0

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

标记:

<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;
});
4

3 回答 3

2

问题是e未定义。

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

$('#submit').submit(function(e) {
    e.preventDefault();
于 2013-10-20T08:12:15.987 回答
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;
});
于 2013-10-20T08:12:08.437 回答
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/

于 2013-10-20T08:14:13.747 回答