2010-07-31 131 views

回答

6

可能,这将帮助:

$('#submitButtonID').click(function(){ 
alert('Please wait while form is submitting'); 
$('#formID').submit(); 
}); 
+2

'.clickfunction()'?你的意思是'.click(function(){' – Harmen 2010-07-31 09:09:18

+0

@Harmen ..是的,输入错误。谢谢 – sTodorov 2010-07-31 09:18:27

+0

@Gaby感谢编辑 – sTodorov 2010-07-31 09:19:09

10

您在submit按钮通常的形式提交到服务器和所有客户端脚本执行单击停止后。所以,除非你AJAX化你的表单,否则无法工作。为了AJAXify你的表格,你可以连接到submit事件,并替换默认动作:

$(function() { 
    $('#theForm').submit(function() { 
     // show a hidden div to indicate progression 
     $('#someHiddenDiv').show(); 

     // kick off AJAX 
     $.ajax({ 
      url: this.action, 
      type: this.method, 
      data: $(this).serialize(), 
      success: function() { 
       // AJAX request finished, handle the results and hide progress 
       $('#someHiddenDiv').hide(); 
      } 
     }); 
     return false; 
    }); 
}); 

和您的标记:

<form id="theForm" action="/foo" method="post"> 
    <input name="foo" type="text" /> 
    <input type="submit" value="Go" /> 
</form> 

<div id="someHiddenDiv" style="display: none;">Working...</div> 
4

Ajaxifying不需要形式。您可以在提交期间显示隐藏的div元素。只要服务器端没有发回任何响应,浏览器将继续显示初始页面。

您可以使用CSS display: none来初始隐藏一个元素。您可以使用jQuery.show()来显示与选择器匹配的元素。

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <title>SO question 3377468</title> 
     <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
     <script> 
      $(document).ready(function() { 
       $('#form').submit(function() { 
        $('#progress').show(); 
       }); 
      }); 
     </script> 
     <style> 
      #progress { 
       display: none; 
       color: green; 
      } 
     </style>    
    </head> 
    <body> 
     <form id="form" action="servlet-url" method="post"> 
      ... 
      <input type="submit"> 
     </form> 
     <div id="progress">Please wait...</div> 
    </body> 
</html> 

所以,只要你是not using scriptlets in JSP跑业务繁忙的东西,而是一个servlet类这又显示了JSP在处理结束时,它会像您期望的工作。