如何在不刷新页面的情况下发送表单数据

我使用提交按钮在ajax中发送数据而没有任何页面刷新。 但页面刷新了。

请检查我的代码,让我知道问题。

  $("#idForm").submit(function() { alert("hi"); var url = "ajax.php"; $.ajax({ type: "POST", url: url, data: $("#idForm").serialize(), success: function(data) { alert(data); } }); return false; });  

ajax.php

 echo "Hello"; 

js已经阻止了表单提交

问题中的代码阻止表单通过此行提交:

 return false; 

这意味着:问题中的JavaScript代码根本没有运行。

表格尚不存在

这里的问题是当这行代码运行时:

 $("#idForm")... 

那个元素还没有在dom中 。 因此,提交处理程序不会附加到任何内容 – 当表单提交它时,它只是一个标准的HTTP post请求。

要解决问题中的问题 – 请执行以下操作之一

在尝试操作元素之前,请确保该元素存在

如果脚本在元素出现在源代码中后运行 – 表单确实存在:

 
...

将jquery代码放在文档就绪处理程序中

如果js处于就绪处理程序中:

  
...

脚本标记的位置无关紧要,因为dom在运行时已经完成加载。

将所有js放在页面的末尾

如果系统地将javascript放在页面的末尾:

  
... ...