如何防止.php页面在.ajax调用后刷新

时间:2014-05-03 20:16:05

标签: php jquery ajax

我有一个名为mathProblems.php的页面,它为用户生成一系列数学问题,并在提交带有id ='math_answers'的表单时,进行ajax调用以对数学问题进行评分并返回结果。

结果在mathProcess.php中评分。在提交时,我看到ajax调用已关闭,在mathProblems.php刷新并生成一组新问题之前,看到mathProcess.php返回的结果和屏幕上的flash。我特别困惑为什么重新加载mathProblems.php正在发生并且会欣赏任何指针。

这是.ajax电话:

//displays user's current problem set results on the math page via getResponse
$('#submit_math').click(function(){
    var mathData = $('#math_answers').serializeArray();
    mathData.push({name: 'times', value: saved_times});
    var text = $.ajax({
        type: "POST",
        url: "mathProcess.php",
        data: $.param(mathData),
        dataType: "json",
        async: false,
    }).responseText;
    $('#problem_widget').html(text);
});

1 个答案:

答案 0 :(得分:-1)

如评论中所述,您需要在事件上调用preventDefault()或使事件处理程序返回false:

<form ... onsubmit="doSomething();return false;>

更简单的方法是根本不使用表单,或者如果要使用表单访问输入,请将按钮放在表单之外:

<form name="bla">
    <input name="foo">
</form>
<input type="button" id="submit" value="submit" />
$("#submit").click(function() {});