2016-11-24 114 views
0

我有一个非常简单的评论表单,它通过$.ajax提交。不过,我在提交时会出现一些问题。表格甚至在使用preventDefault并返回false后仍然提交

即使我在提交script内使用e.preventDefault()return false,也会发生这种情况。

我已经看过每一个职位,我可以找到关于StackOverflow的,甚至各种小提琴,但所遇到的任何解决方案。

这是我的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> 

感谢。

+1

检查控制台中的错误.. – Rayon

+0

@Rayon我有。没有出现过 –

+0

你能提供HTML代码吗? – malutki5200

回答

0

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

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

仍然不幸运:/ –

+0

将此用于您的标记 –

+0

'

' –

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属性到表格

+0

没有。仍然不工作:( –

+0

你可以创建一个codepen.io? –

+0

也确保你在html块之后包含了js。 –

0

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

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

没有可用的按钮。用户必须按回车才能提交。并且,它们已经在'$(document).ready()'事件中 –

+0

您没有在文档就绪事件中显示代码。无论如何,如果您正在动态生成表单,则文档就绪事件可能运行得太晚,而且不会绑定表单。另外,如果有多个表单实例,则会发生其他表单发生更改,但其中一个表单未正确绑定并以某种方式触发回发。无论哪种方式,没有办法在jsfiddle上复制错误,恐怕我不能真正帮助... –

+0

最终修复它:) –

相关问题