由于某些原因,我的提交事件不起作用,但是,如果我将其更改为单击表单,它就会起作用,这是我的代码:
查询:
<script>
(function(){
$('form').on('click',function(){
$.post("../includes/register.php", $('form').serialize(),
function(data){
$('body').append(data);
});
});
})();
</script>
REGISTER.PHP:
<?php
if(isset($_POST['username'])){
echo $_POST['username'];
}
?>
这非常好,每当我点击表单文本输入时,它都会附加用户名,然而,当我尝试使用submit方法时,它不会输出任何内容:
<script>
(function(){
$('form').submit(function(){
$.post("../includes/register.php", $('form').serialize(),
function(data){
$('body').append(data);
});
});
})();
</script>
事实上,当我使用上的按钮时,它甚至都不起作用
您使用的是立即调用的函数,而不是文档就绪的处理程序,您还应该阻止事件的默认操作,请尝试以下操作:
$(function(){
$('form').on('submit',function(event){
event.preventDefault();
$.post("../includes/register.php", $(this).serialize(),
function(data){
$('body').append(data);
});
});
});
默认情况下,表单将提交给表单的操作。你需要防止这种情况发生。您正在等待通过ajax的服务器响应,因此在默认操作发生之前,您很可能永远不会看到回调执行。
$('form').submit(function(e){
e.preventDefault(); // put this first
$.post("../includes/register.php", $('form').serialize(),
function(data){
$('body').append(data);
});
});
这只是猜测,因为我不知道您的HTML代码是什么样子的。
但在提交时,表单将被提交,并且任何活动的ajax请求都将被取消。试试之类的东西
<script>
(function(){
$('form').submit(function(){
$.post("../includes/register.php", $('form').serialize(),
function(data){
$('body').append(data);
});
return false;
});
})();
</script>
这将停止提交事件,您应该让post事件发生。虽然它实际上不会提交表格。所以你必须手动提交。