【发布时间】:2011-05-23 21:44:07
【问题描述】:
我有一个解析 CSV 文件的 grails 应用程序。我让它与表单一起使用,当人们上传表单时,可能需要 30 秒以上才能获得下一页,在此期间,只有精明或额外的书呆子观察者会注意到该页面正在“等待来自..的响应”
有没有一种快速的方法可以在不改变表单机制的情况下使用 javascript(可能是 jQuery)放置某种弹出窗口或沙漏或其他内容?我正在寻找一种快速解决方法,而无需将表单的整个提交迁移到 JQuery 或其他东西。
在我最初的尝试中,答案似乎是否定的。单击正常表单提交时,浏览器似乎会丢弃禁用 javascript 的页面。但是,如果响应是 SAME PAGE,那么 javascript 将执行,但这对我没有帮助。
类似这样的:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">jQuery(function(){
alert("jquery aint buggeed"); //this happens
$("#submitHandle4JQ").click(function(){alert("BE PATIENT!!");}) //this does not
}); </script>
...
<form action="/path/mySweetGrailsController/parseStuff" method="post" enctype="multipart/form-data" >
<input type="hidden" name="longNumber" value="935762708000464097" id="longNumber" />
<input type="file" name="bigFile" />
<input type="submit" text="Upload My File" name="submitHandle4JQ"/><br/>
</form>
【问题讨论】:
-
您的提交按钮上没有
id。 -
$("#submitHandle4JQ").click()不能发生;你没有id="submitHandle4JQ"的元素,但你有$('input:submit[name="submitHandle4JQ"]')之一。 -
您的网络浏览器已经做到了这一点,而且它已经做到了将近二十年。
-
@mVChr:表单的 ID 可能更有用,因为您可以挂接到 form.submit 事件。 button.click 事件不保证在提交表单的过程中被触发,例如在文本框中敲回车也会触发提交但不会触发提交按钮的点击。
标签: jquery html forms submit hourglass