用jquery提交的浏览器

时间:2011-03-16 11:25:28

标签: jquery html

在提交表单时,我会使用以下代码显示阻止消息“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”,因此我知道用户来自哪里。

3 个答案:

答案 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,而不是表单的显示。

在你的历史中,你有类似的东西:

  • 获取:showForm.php(带JS代码的表单)
  • POST:sublitForm.php(表单处理)

当您按F5时,浏览器会在POST上执行刷新。

编辑:您可以使用Ajax调用或使用$('#myForm').submit();创建HACK。在结果之后,使用location.href重定向用户。

如果用户执行刷新,则您的序列中没有帖子。

答案 2 :(得分:0)