form获胜't通过jQuery正确提交,并恢复到默认行为

form won't submit correctly via jQuery and reverts to default behaviour

本文关键字:提交 恢复 默认 获胜 jQuery 通过 form      更新时间:2023-09-26

我有一个id为offerForm的表单,我通过Jquery提交了它,但尽管有"return false"语句,表单并没有通过ajax提交。任何帮助都将不胜感激。

$(document).ready(function() {      
    $('#offerForm').live('submit',function(){   
            loadData(1);
    }); 

    function loadData(page){
                $.post('get-offers.php', $("#offerForm").serialize() + '&page=' + page,  function(data) {
        //Do stuff
        $('#demo').html(data.htmlOutput);
               },'json' );
        return false;
    }
});

我建议使用位于此处的ajaxSubmit插件:http://jquery.malsup.com/form/.它正是你想要做的。

在你的情况下,你会使用这样的东西:

$('#offerForm').submit(function()
{
    var options = {
        dataType: "json",
        success : function(data) {
            $('#demo').html(data.htmlOutput);
        }
    };
    $(this).ajaxSubmit(options);
    return false;
});

一般来说,应该使用event.preventDefault()而不是return false来停止事件——它们都可以工作,但使用事件更干净。

$(document).ready(function()
{      
    $('#offerForm').live('submit',function(event){ // add event as a parameter
        event.preventDefault(); // and call preventDefault here
        loadData(1);
    });
    function loadData(page)
    {
        $.post('get-offers.php', $("#offerForm").serialize() + '&page=' + page,  function(data)
        {
            //Do stuff
            $('#demo').html(data.htmlOutput);
        }, 'json');
    }
});