【问题标题】:AJAX POST form is changing pageAJAX POST 表单正在更改页面
【发布时间】:2015-09-24 21:01:46
【问题描述】:

这让我发疯了,我敢肯定这是一个愚蠢的小错误,但我看不到 - 你们中的哪位天才能否让我感到尴尬并指出来?

表单像常规表单一样发布,即当我希望它像 JQuery 一样提交内联时更改页面。

JQUERY:

        $("#emailPromoter").submit(function(e) {
            var postData = $(this).serializeArray();
            var formURL = $(this).attr("action");
            $.ajax( {
                url : formURL,
                type: "POST",
                data : postData,
                success:function(data, textStatus, jqXHR) {
                    $('#venueForm').html( JSON.stringify( data ) );
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    console.log( errorThrown );  
                }
            });
            e.preventDefault();
        });

HTML:

    <form name="emailPromoter" class="mobFrm" method="post" id="emailPromoter" action="submit/?id=<?= $intId ?>">
    <fieldset>
        <legend>Contact form</legend>
        <p><label for="name">Name <span class="red">*</span></label><input required name="name" type="text" id="name" /></p>
        <p><label for="email">Email <span class="red">*</span></label><input required name="email" type="email" id="email" /></p>
        <p><label for="confirmEmail">Confirm Email <span class="red">*</span></label><input required name="confirmEmail" type="email" id="confirmEmail" /></p>
        <p><label for="tel">Tel</label><input name="tel" type="tel" id="tel" /></p>
        <p><label for="address">Address</label><textarea name="address" rows="5" id="address"></textarea></p>
        <p><label for="message">Message <span class="red">*</span></label><textarea required name="message" rows="5" id="message"></textarea></p>
    </fieldset>
    <p><label>&nbsp;</label><input name="submit" id="submitForm" type="submit" class="submit" value="Send message" /></p>
</form>
<div id="response"></div>

有人能把我从某种精神错乱中拯救出来吗?

谢谢。

更新:还在看。我不认为该函数被调用

【问题讨论】:

    标签: jquery ajax forms post


    【解决方案1】:

    您可以添加return false; 而不是e.preventDefault();

    【讨论】:

    • 我刚刚尝试过。让我意识到没有调用该函数。还是卡住了
    • 如果您的页面位于某个地方,我可以为您提供帮助。但是根据您当前提供的代码,我认为问题出在 e.preventDefault();
    • 它在这里直播,单击电子邮件选项卡以查看我尝试通过 jquery 发布的表单:onlineticketseller.com/events/indexNew.php?id=165
    【解决方案2】:

    通过摆弄它解决了它,不知道到底是怎么解决的,但这是我的 jquery:

            $("#emailPromoter").submit(function(e) {
                var postData = $(this).serialize();
                var formURL = $(this).attr("action");
                $.ajax( {
                    url : formURL,
                    type: "POST",
                    data : postData,
                    success:function(data, textStatus, jqXHR) {
                        $('#venueForm').html( data );
                    },
                    error: function(jqXHR, textStatus, errorThrown) {
                        console.log( errorThrown );  
                    }
                });
                e.preventDefault();
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      相关资源
      最近更新 更多