如何检测该函数是否仍在运行?或者我可以钩入返回事件
JavascriptJquery How can i detect if the function is still running? or can i hook in to return event?
让我来描述一个标准情况:有一个表单有多个输入(大约60-70个)。每个输入都需要验证。如果无效,则返回false。我需要从multiclicking(multisubmitting)
保护表单,以防止多个AJAX
请求与图形反馈。
我的解决方案是在AJAX
请求发送之前调用自定义文档事件,该事件立即创建div
与宽度和height 100%
, z-index 9998
,其中包含加载gif和一些消息。在完成AJAX
请求时调用另一个,这只是从DOM
中删除该元素。
我的问题是:这是一个有效的解决方案吗?我的意思是,它的许多表单输入和验证可能在较旧的计算机上较慢,这意味着它可能需要一些时间,才能将shielddiv附加到主体并保护表单免于提交。我可以简单地监听函数并检测它是否返回一些东西吗?在我的理解不同的情况下,我需要在每次返回值之前进行解析,这意味着60-70行新代码,这是混乱和不希望的。
是否有人以前遇到过这个问题,并且100%准确而优雅地解决了它?
不要依赖"shielding div"
来防止多次提交。只需在提交前钩入表单检查的提交事件:
$('#myForm').submit(function() {
if (!stillValidating())
//submit form
else
//handle however you deem necessary.
});
你首先需要停止表单提交的默认行为,然后你必须检查表单输入是否有效,如果是,然后它去ajax调用。
$('#form').submit( function(e){
e.preventDefault();
var $form = $(this);
// check if the input is valid
if(! $form.valid()) return false;
$.ajax({
type: 'POST',
url: 'add.php',
data: $('#form').serialize(),
success: function(response) {
$("#answers").html(response);
}
});
});
相关文章:
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 使用压缩的JavaScript文件(不是运行时压缩)
- Javascript运行php文件,然后下载文件
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Angularjs代码未在匿名函数中运行
- jquery设置为使用参数运行
- 如何根据时间运行不同的脚本
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 将文本框链接到由按钮运行的javascript公式
- 为什么不是't运行此Javascript的Chrome
- ng应用程序使脚本无限运行
- 在按钮'上运行PHP代码;s onclick事件,或者使用Ajax
- onblur - 如何分辨点击的内容;或者如何判断 onClick 事件是否正在等待运行
- 我可以在没有WebView的情况下运行Javascript吗?或者WebView可以在没有Activity上下文的情况下
- 我是否必须再次执行分派,或者为什么我的代码没有运行
- Javascript测试夹具,或者,如何让我的规范在单页应用程序上运行
- 当用户从服务器下载文件时需要提示'save as'或者运行',而不是自动下载
- JavaScript .execute命令是否可以同步运行,或者转换为Ajax ?
- 如何检测该函数是否仍在运行?或者我可以钩入返回事件