表单仍然在使用preventDefault后仍然提交并返回false

时间:2016-11-24 10:21:09

标签: javascript jquery

我有一个非常简单的评论表单,通过$.ajax提交。但是,我在提交时刷新了一些问题。

即使我在提交e.preventDefault()中同时使用return falsescript,也会发生这种情况。

我已经查看了我在 StackOverflow 上找到的每一篇文章,甚至还有各种 Fiddles ,但却找不到任何解决方案。

这是我的 JavaScript

$(".f-track-actions__form").submit(function(ev){
    ev.preventDefault();

    var wave = $.cookie("cv"),
        wave = eval(wave),
        waveDuration = wave.getDuration();

    var child = $(this).children(".f-track-actions__form-comment");
    var cTime = (wave.getCurrentTime() / waveDuration) * 100;
    var pD = {
        'c': comment.val(),
        'i': child.attr('id'),
        't': cTime
    };

    $.ajax({
        type: "post",
        url: "/spectrum-rr/core/_func/functions/actionTrack.php",
        data: pD,
        success: function(data) {
            alert(data);
        }
    });

    return false;
});

HTML

<form method="post" class="f-track-actions__form">
    <input class="f-track-actions__form-comment" type="text" placeholder="Comment on this track..." name="comment" id="c-1">
</form>

感谢。

3 个答案:

答案 0 :(得分:0)

之前我使用过这个功能,它正在使用e.preventDefaults

$('#contactForm1').on('submit',function(e){
    e.preventDefaults();
});

答案 1 :(得分:0)

将您的HTML更改为此

<form action="" method="post" class="f-track-actions__form">
    <input class="f-track-actions__form-comment" type="text" placeholder="Comment on this track..." name="comment" id="c-1">
</form>

提交处理程序无效,因为您错过了将action属性添加到表单

答案 2 :(得分:0)

确保在文档就绪事件中绑定按钮...

$( document ).ready() {
    $(".f-track-actions__form").submit(function(ev){
        ...
        return false;
    }
}