继续检查直到真

时间:2012-09-03 05:41:48

标签: javascript jquery

基本上,我有一个由CMS处理的表单,我无法编辑它的javascript,但我或多或少想要向我的用户添加“正在加载”或“发送”消息。例如。

目前,默认表单一旦提交,会在发送后将一个html成功消息附加到一个名为“success”的div中,但基本上,我想在提交按钮上运行一个函数,该函数不断检查其他任何内容的“成功”比''一旦它不为空,关闭加载符号。

或许这样的事情:

$('#submitBtn').click(function(){
    $('#loadingDiv').show();
    while (!$('#success').html() == ''){
        $('#loadingDiv').hide();
    }
});

非常感谢任何帮助。我只是不太确定如何编写它,我对jquery或javascript不太好

2 个答案:

答案 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'); 
    });
});