2013-09-24 67 views
1

当时我在文档的末尾:在提交功能不叫

<script> 
    $("#submitEvent").click(function() { 
     $("#eventForm").submit(); 
    }); 


    $(document).ready(function() { 


    $('#eventForm').submit(function() { 
     console.log("I am on submit"); 

    }); }); 
</script> 

现在submitEvent是按钮,这不是一个形式,以便和其上。点击事件的原因中。

当按钮被按下的表单提交正确触发:

现在我期待着另一个事件被解雇时提交被触发,这实际上是某种原因被忽略。取而代之的console.log的,我并不奇怪打算使用AJAX,但即便如此,则不会触发事件的console.log不打印任何东西..

更新,并作为你的建议仍然没有:-):

$(document).ready(function() { 

    $("#submitEvent").click(function() { 
     $("#eventForm").submit(); 
    }); 




    $('#eventForm').submit(function() { 
     console.log("I am on submit"); 

    }); 


    }); 
+0

嗯,我该如何检查ajax是否会被调用。尝试改变dom ajax onSuccess中的一些值? – Aubergine

+1

正如我所说的,在处理程序中放置一个断点,看它是否被击中。或者如果你想要从九十年代开始进行调试,那就加一个'alert'。 :-) –

+0

:-D片刻! :-D – Aubergine

回答

1

如果您说表单提交处理程序没有被调用的原因是您没有在控制台中看到输出,请记住提交表单完全关闭并替换页面。在控制台被清除之前,您可能没有时间查看日志消息。


在评论,你说:

嗯,所以我怎么能检查是否AJAX将被调用。

您可以通过在console.log语句中设置断点并查看断点是否被命中来检查。或者,如果您想调试1990年代风格,请使用alert

但请注意,如果表单的结果将替换页面,则从表单提交处理程序中执行ajax是不可靠的。 (如果表单的结果不会替换页面,则可能是好的。)这是因为ajax是异步的,这意味着您的提交处理程序可能启动它,但它没有时间在被取消之前完成由拆解。

+0

我希望我的大脑能够像这样工作。 :-) – Aubergine

+0

@Aubergine:LOL –

1

你只需要移动就绪功能

<script> 
    $(document).ready(function() { 
     $("#submitEvent").click(function() { 
      // run ajjax code here 
     }); 

     $('#eventForm').submit(function(e) { 
      e.preventDefault(); // stops the page from submiting 
      console.log("I am on submit"); 
     }); 
    }); 
</script> 

我更新的代码,你不需要提交表单里面的代码。点击运行ajax。

+0

问题就在脚本上方:*“**在文档末尾**:”*(我强调)。 –

+0

是的,我更新了我的问题,并包括准备反正 - 仍然没有:-D – Aubergine

+0

@Aubergine看到我的更新 – Ibu

1

尝试......

$(document).ready(function() { 

    $("#submitEvent").click(function() { 
     $("#eventForm").submit(); 
    }); 

    $('#eventForm').submit(function(e) { 
     e.preventDefault(); 
     console.log("I am on submit"); 
    }); 
}); 

它将停止提交表单,所以你可以看到,现在,如果实际被触发与否的事件。

它可能只是在您看到控制台输出之前提交的表单正在重新加载页面。

+0

它实际上打印后更新!所以@ T.J。 Crowder是正确的? – Aubergine

+0

是的。只要处理提交,但是你打算,现在你知道你的事件处理程序正在工作:) – Archer