Javascript 使用event.preventdefault的错误

Javascript 使用event.preventdefault的错误,javascript,jquery,Javascript,Jquery,这不管用 JS: var currentPath=window.location.pathname; var currentPage=currentPath.substring(currentPath.lastIndexOf('/')+1); $(函数(){ $(“#shoutBox”).submit(函数(事件){ event.preventDefault(); 变量值=$('#shoutBox')。序列化(); $.post(“shoutbox.php”,值) .完成(功能(数据){ $('

这不管用

JS:

var currentPath=window.location.pathname; var currentPage=currentPath.substring(currentPath.lastIndexOf('/')+1); $(函数(){ $(“#shoutBox”).submit(函数(事件){ event.preventDefault(); 变量值=$('#shoutBox')。序列化(); $.post(“shoutbox.php”,值) .完成(功能(数据){ $('input:text[name=shout]').val(“JE shout是GEPOST!WACHT 1分钟!”); $('input:text[name=shout]').attr('readonly',true); 设置超时( 函数() { $('input:text[name=shout]').val(“JE KAN EEN NIEUWE shout MAKEN!”); $('input:text[name=shout]').attr('readonly',false); }, 60000); }); }); }); $(函数(){ $(“#newName”).submit(函数(事件){ event.preventDefault(); var valuen=$('#newName').serialize(); $.post(“shoutbox.php”,valuen) .完成(功能(数据){ 重新加载(); }); }); }); 功能到新页面(链接) { $(“#内容”).fadeOut(函数() { $(this).load(链接+“#内容”,函数() { $(this.fadeIn(); }) }); pushState({change:“page”},“RandomRadio”,“/”+link); } 函数重载() { 至新页面(当前页面); } 表单#shoutBox成功运行。

但是当我提交两次表单#newName时,它会刷新页面。

可能是因为您的
.done
调用了
reload()

然而,我会添加
returnfalse

$("#newName").submit(function(event) {
            event.preventDefault();

            var valuen = $('#newName').serialize();

            $.post("shoutbox.php", valuen)

            .done(function(data) {
                reload();
            });
            return false;
        });
请修改你的报价。选择单引号或双引号并坚持使用。

我有一个解决方案:)

我在提交按钮中添加了一个id,并使用了这个

$("#submitshout").live("click", function(event){ $(#submitshout”).live(“单击”),功能(事件){ 而不是

$("#shoutBox").submit(function(event) { $(“#shoutBox”).submit(函数(事件){
是的,可能是因为在您第一次提交AJAX请求并第一次完成之后,您自己调用了
reload()
。您期望什么?它会显示#shoutBox表单,但当您提交时,它甚至只会重新加载。reload将淡出页面,并在重新加载的页面中淡出。但是#newName调用$.post(“shoutbox.php”)两次,一次获得,一次发布,我不知道他为什么要发出一个获得请求。哦,等等,我可能误解了你。你是说
#shoutBox
表单按它应该的方式工作,但是如果你提交
#newName
两次,它就会停止工作?看起来
到新页面
方法会重新加载一些东西。我打赌你会得到新的
#newName
表单和sumbit事件未绑定。请使用委派。感谢引号提示。我将使用“:)请记住,从jQuery 1.7开始,.live()已被弃用。如果我是您,我将检查是否使用最新的jQuery,而不是.live(),我将使用.on()来附加事件处理程序。为了安全起见。 $("#shoutBox").submit(function(event) {