我有一个名为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);
});
答案 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() {});