我只是试图延迟表单提交并为用户提供某种正在发生的动作的感觉,而不仅仅是即时表单提交。下面链接的 jsfiddle 准确地显示了我正在尝试做的事情(减去我想要为其提供消息的客户端中发生的操作)。
简而言之,我想使用 setTimeout 作为一种将表单提交延迟 N 秒的方法,例如
// display message indicating we're doing something
$("#container").html("<p>Processing...</p>");
setTimeout(function () {
// display message indicating we're ready to submit the form
$("#container").html("<p>Submitting...</p>");
// trigger form submit action
form.submit();
return true; // needed?
}, 2000);
正如您在此处看到的,我将“提交...”消息和实际的表单提交触发器包装在 setTimeout 中。这一切都在一个更大的$("#theForm").submit()
包装中。
这要么完全失败(挂起),要么在表单通过但 POST 失败的地方执行某种伪“部分提交”。
我不同意这个想法......如果有另一种延迟表单提交几秒钟以提高用户体验的方法,我想知道。
测试的浏览器:Chrome、IE 8、Windows 下的 FF 12……这就是我可以访问 ATM 的全部内容。