表单将无法通过jQuery正确提交并恢复为默认行为

时间:2012-02-09 01:46:47

标签: javascript jquery

我有一个带有我通过Jquery提交的id offerForm的表单,但是尽管'返回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;
    }
});

2 个答案:

答案 0 :(得分:1)

我建议使用位于此处的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;
});

答案 1 :(得分:0)

作为一般规则,您应该使用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');
    }
});