基本上,我有一个由CMS处理的表单,我无法编辑它的javascript,但我或多或少想要向我的用户添加“正在加载”或“发送”消息。例如。
目前,默认表单一旦提交,会在发送后将一个html成功消息附加到一个名为“success”的div中,但基本上,我想在提交按钮上运行一个函数,该函数不断检查其他任何内容的“成功”比''一旦它不为空,关闭加载符号。
或许这样的事情:
$('#submitBtn').click(function(){
$('#loadingDiv').show();
while (!$('#success').html() == ''){
$('#loadingDiv').hide();
}
});
非常感谢任何帮助。我只是不太确定如何编写它,我对jquery或javascript不太好
答案 0 :(得分:8)
您可以使用setInterval执行此操作。像这样:
$('#submitBtn').click(function(){
$('#loadingDiv').show();
var intervalId = setInterval(function() {
if($('#success').html() != '') {
clearInterval(intervalId);
$('#loadingDiv').hide();
}
}, 100);
});
while(!$('#success')。html()=='')将冻结所有其他操作并将永远持续。 但仍然 - 最好仔细检查一下你是否确实无法在成功回调中添加一些代码。可能ajaxComplete可能对您有所帮助。
答案 1 :(得分:1)
也许您可以手动发送表单的数据吗?
(在这种情况下,也许确保“submitBtn”是一个简单的按钮,而不是提交按钮,以防止默认提交)
$('#submitBtn').click(function(){
$('#loadingDiv').show();
// Send the data with post - To complete
$.post('/your_post_addr', {data_1: my_data_1, ...},
function(data) {
$('#loadingDiv').hide();
}).error(function() {
// Your error message
alert('Error');
});
});