出于某种原因,jQuery没有加载我的php文件。单击该按钮,页面只刷新。我已经验证了jQuery正在运行,点击功能也正常运行。一旦到达$.post
,它似乎不会调用该文件并进行暂停并回显结果。该目录对于php文件是正确的。我很茫然。有什么想法吗?
// HTML Code
<input id="doit" class="medium blue button" type="submit" name="doit" value="Sign in">
//jQuery code:
$('#doit').click(function(){
$('#fullscreen').show();
$.post('./delete-misc/test-ajax-code.php', function(data){
$('#fullscreen').hide();
alert(data);
})
});
// Php code (test-ajax-code.php)
<?php
sleep(10);
echo "Done";
?>
答案 0 :(得分:3)
尝试从网址的开头删除点。
$.post('/delete-misc/test-ajax-code.php', ...
由于缺乏经验,我无法详细解释URL路径中的点如何正常工作,但我会将其设为社区维基,以便让其他人解释。
编辑:我问了一个关于这个主题的问题,答案很棒:What does a dot mean in a URL?
答案 1 :(得分:2)
更改按钮类型。
所以,而不是:
<input id="doit" ... type="submit" ... />
你应该有这个:
<input id="doit" ... type="button" ... />
为什么呢?导致提交按钮将触发表单提交,该表单将转到另一个页面。但是一个按钮什么都不做,只有你编程的东西(用js)才能做到。
另一个解决方案是防止javascript中按钮点击的默认行为,所以你应该:
$('#doit').click(function(){
$('#fullscreen').show();
$.post('./delete-misc/test-ajax-code.php', function(data){
$('#fullscreen').hide();
alert(data);
});
return false; //This does the trick!!!
});
为什么呢?在jquery事件中返回false
'取消'默认行为,因此表单不会被提交
希望这会有所帮助。干杯
答案 2 :(得分:1)
尝试更改为按钮类型:
<input id="doit" class="medium blue button" type="button" name="doit" value="Sign in">
答案 3 :(得分:1)
您需要在提交处理程序中返回false
。如果不这样,表单将在处理程序返回后正常提交。
答案 4 :(得分:0)
您忘记了;
之后结束$.post
;)。
试试这个,它个人工作:
$('#doit').click(function(){
$.post('./delete-misc/test-ajax-code.php', function(data){
alert(data);
});
});
答案 5 :(得分:0)
删除提交按钮的name属性并尝试。一段时间我有一个类似的问题,删除名称属性是诀窍。 (当我通过jQuery提交发布的数据时,我不需要name属性。)
我仍然想知道它为什么会起作用?