在提交表单时,我会使用以下代码显示阻止消息“Please wait”:
$(document).ready(function() {
$('form').submit(function() {
$.blockUI({ message: "<h1 id='waitingmessage'>Plz wait ...</h1>" });
});
});
这对我有用。
如果用户现在按F5,浏览器会要求重新提交。允许用户。 但上面的脚本不再触发了。
如何使用jquery触发此重新提交,因此仍会显示waitingmessage?
Thx
克里斯
编辑: 表单的提交与表单的地址相同。我只在控制器端区分GET和POST。如果是POST,我处理收到的数据,否则我只显示空白表格。 允许用户两次或根据需要发送数据。因此,在第一次POST后,用户可以按F5重新提交数据,他完全被允许。 只是等待消息不再出现了。 所以我需要一个更通用的解决方案“onpost”。这样的事情存在吗?
解决方案:
$(document).ready(function() {
$('form').submit(function() {
$.blockUI({ message: "<h1 id='waitingmessage'>Bitte warten ...</h1>" });
});
$(window).keydown(function(event){
if (event.keyCode == '116' && '${request.method}' == 'POST') {
$.blockUI({ message: "<h1 id='waitingmessage'>Bitte warten ...</h1>" });
}
});
});
request.method设置为服务器端,是“GET”或“POST”,因此我知道用户来自哪里。
答案 0 :(得分:2)
似乎我也没有完美的解决方案。我只会做第一次F5
事件
<script type="text/javascript">
$(function ()
{
$(window).keydown(function (e)
{
if(e.keyCode == 116){
submitform();
return false;
}
alert(e.keyCode);
});
})
function submitform()
{
alert("hello");
}
</script>
<form id="myform" action='test.php'>
<input id="submit" type="submit" onclick="submitform(); return false;"/>
</form>
答案 1 :(得分:1)
你没有,因为当用户按下F5时,浏览器会刷新最后一个“查询”,最后一个查询是表单的POST,而不是表单的显示。
在你的历史中,你有类似的东西:
当您按F5时,浏览器会在POST上执行刷新。
编辑:您可以使用Ajax调用或使用$('#myForm').submit();
创建HACK。在结果之后,使用location.href
重定向用户。
如果用户执行刷新,则您的序列中没有帖子。
答案 2 :(得分:0)