Ajax调用赢得';t pass-表单始终由php提交

Ajax调用赢得';t pass-表单始终由php提交,php,jquery,ajax,Php,Jquery,Ajax,我有一个表单,默认情况下,它与php uri_请求一起提交。 现在我试图添加一个ajax调用来提交表单,但它仍然使用php提交 提交表单的ajax调用是: $(document).ready(function() { $("#contactform").submit(function(e) { e.preventDefault(); }); $.ajax({ cache: false, type: 'POST',

我有一个表单,默认情况下,它与php uri_请求一起提交。 现在我试图添加一个ajax调用来提交表单,但它仍然使用php提交 提交表单的ajax调用是:

$(document).ready(function() {
    $("#contactform").submit(function(e) {
        e.preventDefault();
    });
    $.ajax({
        cache: false,
        type: 'POST',
        data: ("#contactform").serialize(),
        url: 'formfiles/submit.php',
        // for ajax the submit.php is on a             
        success: function() {
            // separate page 
            $('#contactform').fadeOut(200).submit();
            $('#success').delay(200).fadeIn(200);
        }
    });
    return false;

});
html表单属性包括:

<form action="#n" class="active" method="post" name="contactform" id="contactform">   
在ajax调用开始时,它将不起作用,但如果没有ajax,它将起作用(只有prevent默认值!)

代码有什么问题?为什么它不起作用

提前谢谢你的帮助

编辑这里是html{在一个包含文件中(hole站点是一个php动态结构)}



您可以按如下方式重新构造代码以修复问题。您不需要
返回false
e.preventDefault()会处理好的

$(document).ready(function () {

    $("#contactform").submit(function (e) {

        e.preventDefault();

        $.ajax({
            cache: false,
            type: 'POST',
            data: $("#contactform").serialize(), //note that $ mark is added
            url: 'formfiles/submit.php', // for ajax the submit.php is on a             
            success: function () { // separate page 
                $('#contactform').fadeOut(200).submit();
                $('#success').delay(200).fadeIn(200);
            }
        });

    });


});

在ajax调用的
数据:(“#contactform”).serialize()行中有一个错误。它应该是
数据:$(“#contactform”).serialize()

试试这个:

$(document).ready(function() {
    $("#contactform").submit(function(e){
        $.ajax({
            cache: false,
            type: 'POST',
            data: $("#contactform").serialize(),
            url : 'formfiles/submit.php',   // for ajax the submit.php is on a             
            success: function() {            // separate page 
                $('#contactform').fadeOut(200).submit();
                $('#success').delay(200).fadeIn(200);
            },
            error: function(error_response){
               console.log(error_response);
            }
        }); 
    });
});
更新:

我发现你的代码有一些问题

  • 是否加载了所需的jQuery库?我在你粘贴的html中没有看到。希望你已经把它包括在标题里了
  • 添加一个
    e.preventDefault()
    防止表单的默认操作,因为输入类型是
    submit
    。如果您没有输入,表单将以默认方法提交
  • 我看不到
    脚本
    标记已关闭。您应该关闭
    脚本
    标记,否则它将无法工作。请参阅以下更新代码:

    <script type="text/javascript">
       $(document).ready(function() {
        $("#contactform").submit(function(e){
            e.preventDefault();
            $.ajax({
                cache: false,
                type: 'POST',
                data: $("#contactform").serialize(),
                url : 'formfiles/submit.php',   // for ajax the submit.php is on a             
                success: function() {            // separate page 
                    $('#contactform').fadeOut(200).submit();
                    $('#success').delay(200).fadeIn(200);
                }
            }); 
        });
       });
    </script>
    

    希望这能有所帮助

    我已经尝试过该代码,但仍然不起作用。还尝试了其他解决方案,以不同的方式编写ajax调用,但代码无法工作。把电话放在哪里重要吗?在表格之前还是之后?另外,是否可能与其他jquery脚本存在冲突?只要代码在$(document).ready(function(){将代码放在页面的何处并不重要。请检查开发人员工具(FireBug)对于JS errorsit show,控制台上什么都没有。似乎ajax调用不存在仍然不工作!!为什么?可能有冲突?可能?调用的位置很重要?@Someone33你能发布完整的HTML吗form@Someone33代码正在运行,ajax调用正在进行。ajax的响应是什么。您已经编写了ajax的成功函数。请编写错误方法。检查我的新编辑。错误响应将在浏览器控制台中打印。您能检查错误是什么吗error@Someone33是否确实调用了表单提交函数。是否可以在$(“#contactform”)中添加一些警报。提交(函数(e){若要检查该请求是否已发出,请确保调用Submit函数,因为表单始终使用php提交。请在调用中放置一个
    警报(“正在工作”);
    。仍然不工作:-(
    $(document).ready(function() {
        $("#contactform").submit(function(e){
            $.ajax({
                cache: false,
                type: 'POST',
                data: $("#contactform").serialize(),
                url : 'formfiles/submit.php',   // for ajax the submit.php is on a             
                success: function() {            // separate page 
                    $('#contactform').fadeOut(200).submit();
                    $('#success').delay(200).fadeIn(200);
                },
                error: function(error_response){
                   console.log(error_response);
                }
            }); 
        });
    });
    
    <script type="text/javascript">
       $(document).ready(function() {
        $("#contactform").submit(function(e){
            e.preventDefault();
            $.ajax({
                cache: false,
                type: 'POST',
                data: $("#contactform").serialize(),
                url : 'formfiles/submit.php',   // for ajax the submit.php is on a             
                success: function() {            // separate page 
                    $('#contactform').fadeOut(200).submit();
                    $('#success').delay(200).fadeIn(200);
                }
            }); 
        });
       });
    </script>
    
    <script type="text/javascript">
       $(document).ready(function() {
        $("#contactform").submit(function(e){
            e.preventDefault();
            $.ajax({
                cache: false,
                type: 'POST',
                data: $("#contactform").serialize(),
                url : 'formfiles/submit.php',   // for ajax the submit.php is on a             
                success: function(response) {            // separate page 
                    if (response == 'success') {
                      //write what you want to do on success
                        $('#success').delay(200).fadeIn(200);
                    } else {
                      //show error
                    }
                }
            }); 
        });
       });
    </script>