jQuery .post不总是运行



我正在创建一个网站,允许用户从任意数量的答案中选择一个。最终,我让所有的工作都达到了一定程度。系统可以工作,但如果用户在页面上停留超过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并检查任何站点错误(没有发现)。这里有什么问题呢?

我所看到的是有一个submit按钮在你的页面,提交按钮的默认动作是提交表单,为了防止它,你可以从onclick事件处理程序返回false

但令我困惑的是,在这种情况下,它必须是一致的,30秒的部分在这里没有任何影响。

无论如何,尝试将提交按钮中的onclick处理程序更改为

<input type="submit" name="submitbtn" value="Submit" onclick="submitAns('group0','0'); return false;" class="btnSubmit" />

相关内容

  • 没有找到相关文章

最新更新