IdealForms-javascript-post不工作
这是我在下的post函数。当我单击submit时,文本“All Good”会出现,但页面不会刷新或将详细信息发布到register.php页面。您似乎根本误解了AJAX的工作原理。您希望页面刷新,但您使用的代码明确告诉页面不要刷新。首先,这是:IdealForms-javascript-post不工作,javascript,php,jquery,Javascript,Php,Jquery,这是我在下的post函数。当我单击submit时,文本“All Good”会出现,但页面不会刷新或将详细信息发布到register.php页面。您似乎根本误解了AJAX的工作原理。您希望页面刷新,但您使用的代码明确告诉页面不要刷新。首先,这是: onSubmit: function(invalid, e) { e.preventDefault(); $('#invalid') .show()
onSubmit: function(invalid, e) {
e.preventDefault();
$('#invalid')
.show()
.toggleClass('valid', ! invalid)
.text(invalid ? (invalid +' invalid fields') : 'All good!');
if (!invalid) $.post('register.php', this.$form.serialize(), function(response) {
}, 'json');
}
这正是它所说的,它阻止了默认事件。假设这是在表单上,它会显式阻止表单提交。然后您就有了AJAX请求:
e.preventDefault();
正如您在FireBug中确认的那样,这会向服务器发送一个POST
请求。但是你没有对回应做任何事。您的函数为空:
$.post('register.php', this.$form.serialize(), function(response) {
}, 'json');
所以。。。你预计会发生什么?一个空函数。。。什么都不做。您可以在FireBug中确认响应是否符合预期,但这是一个完全不同的问题。无论响应是什么,不管它是否正确,如果您不实际显示它,它都不会显示在页面上。请看以下示例:
响应放在
$(“.result”)
元素中。在这段代码中,他们正在显示响应。如果要查看响应,还必须将其显示在某个位置。JavaScript控制台上是否有错误?当您调试这个时,会发生什么?您是如何确认没有发出POST请求的?控制台是纯白色的。没有错误。我在register.php中放置了echos,它们没有出现。此外,我还添加了if($_POST['submit'])echo。。。;检查邮件是否已提交,但回音从未出现。“清晰的白色”?你在看什么?使用浏览器调试器(如FireBug或Chrome工具)检查错误。您还可以使用它来检查请求,例如AJAX帖子(可能在工具中的某种“网络选项卡”上)。在那里,您可以检查对服务器的实际请求和响应,而不只是假设一切正常。由于您的代码实际上与响应没有任何关系,因此不清楚您是如何确定这不起作用的。我提到的代码是应该将post消息发送到给定php文件的代码。我创建了一个空白文件并键入echo'hi';消息从未出现,因此我确认post数据从未发送。关于白色控制台,我正在查看Chrome中的javascript控制台。此外,OnSubmit会被调用,因为文本都是好的。定义“消息从未出现”。javascript代码对服务器的响应没有任何作用。所以它忽略了从服务器返回的任何“消息”。如果要查看实际的请求和响应,请使用调试工具。您不能仅仅假设您的代码是正确的,并根据观察到的整个系统的行为来确定错误。
function(response) {
}
$.post( "ajax/test.html", function( data ) {
$( ".result" ).html( data );
});