由于某些原因,我的提交事件无法正常工作,但是,如果我将其更改为单击表单,则可以使用,这是我的代码:
JQUERY:
<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>
事实上,当我使用button.on('click')
时,它甚至不起作用答案 0 :(得分:1)
您正在使用立即调用的函数而不是文档就绪处理程序,您也应该阻止事件的默认操作,请尝试以下操作:
$(function(){
$('form').on('submit',function(event){
event.preventDefault();
$.post("../includes/register.php", $(this).serialize(),
function(data){
$('body').append(data);
});
});
});
答案 1 :(得分:0)
默认情况下,表单将提交给表单的操作。你需要防止这种情况发生。您正在等待通过ajax进行服务器响应,因此在默认操作发生之前,您很可能永远不会看到您的回调执行。
$('form').submit(function(e){
e.preventDefault(); // put this first
$.post("../includes/register.php", $('form').serialize(),
function(data){
$('body').append(data);
});
});
答案 2 :(得分:0)
现在这是猜测,因为我不知道您的HTML代码是什么样的。
但是在提交时,表单将被提交,任何活动的ajax请求都将被取消。 尝试像
这样的东西<script>
(function(){
$('form').submit(function(){
$.post("../includes/register.php", $('form').serialize(),
function(data){
$('body').append(data);
});
return false;
});
})();
</script>
这将停止提交事件,您应该发布事件。虽然它实际上不会提交表格。所以你必须手动完成。