我正在创建一个允许用户选择任意数量答案之一的网站。最终,我已经完成了所有工作。系统有效,但如果用户在页面上超过30秒,则提交似乎不起作用。没有超时集应该在网站上造成这种情况,我似乎无法找到导致它在jQuery .post中的原因。这是我正在使用的代码:
function submitAns(str, num) {
var radios = document.getElementsByName(str);
for (var i = 0, length = radios.length; i < length; i++) {
if (radios[i].checked) {
$.post('saveAnswer.aspx', {
'answer': String(radios[i].value),
'question': num,
'comment': String($("#comment").val())
}, function (msg) {
if (msg == "failed") {
jAlert('Error Saving Data.');
} else {
window.location = "Voting-Page";
}
});
}
}
}
用户点击表格看起来与此类似的按钮后,会出现这种情况:
<input type='radio' name='group0' value='Yes'>Yes
<input type='radio' name='group0' value='No'>No
<textarea id='comment' rows='7' cols='40'></textarea>
<input type="submit" name="submitbtn" value="Submit" onclick="submitAns('group0','0');" class="btnSubmit" />
如果我在30秒的时间范围内提交表单,它会毫无问题地通过。否则,将重新加载页面并且不提交表单。我已经尝试通过添加'timeout': 300000
向.post添加一个大的超时,但这仍然无效。我也尝试删除jAlert并检查是否有任何网站错误(没有找到)。这可能是什么问题?
答案 0 :(得分:0)
我可以看到页面中有一个submit
按钮,提交按钮的默认操作是提交表单,以防止您从{false
返回onclick
1}}事件处理程序。
但令我困惑的是,在这种情况下它必须保持一致,30秒的部分在这里没有任何影响。
尝试将提交按钮中的onclick
处理程序更改为
<input type="submit" name="submitbtn" value="Submit" onclick="submitAns('group0','0'); return false;" class="btnSubmit" />