以下是我正在做的事情和原因:
编辑:发现,由于javascript是异步语言,没有preventDefault(停止表单提交),setTimeout永远不会启动,动作会立即返回true。
<form method="post" name="my_form" id="my_form" enctype="multipart/form-data">
<input type="submit" name="my_submit" id="my_submit" value="Submit" />
<div id="form_loading_message" style="display:none;">
<h1>Please wait, page is loading...</h1>
</div>
</form>
$('#my_submit').click(function(event) {
$.blockUI({
message: $('#form_loading_message')
});
var form = $('#my_form');
event.preventDefault();
setTimeout(function () {
form.unbind('submit').submit();
$.unblockUI();
}, 1000);
});
如果您更好地了解如何做到这一点,那么,我也愿意接受其他建议......
答案 0 :(得分:0)
不熟悉blockUI,但是......我会这样做:
<html>
<head>
<script src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#my_submit').click(function() {
$('#form_loading_message').show();
setTimeout('submitForm()', 1000);
});
});
function submitForm(){
$('#my_form').submit();
}
</script>
</head>
<body>
<form method="post" name="my_form" id="my_form" action="google.com" enctype="multipart/form-data">
<input type="button" name="my_submit" id="my_submit" value="Submit" />
<div id="form_loading_message" style="display:none;">
<h1>Please wait, page is loading...</h1>
</div>
</form>
</body>
</html>
答案 1 :(得分:0)
由于我没有找到如何使用javascript执行此操作,因此在将用户重定向到另一个页面之前使用了php sleep()-function。当然阻止提交操作时,自然需要删除默认。此解决方案为我解决了用例:只是向用户显示页面正在加载的消息。