2

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

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

可能是这样的:

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

任何帮助将不胜感激。我只是不太确定如何编写它,我不擅长 jquery 或 javascript

4

2 回答 2

9

您可以使用 setInterval 执行此操作。像这样的东西:

$('#submitBtn').click(function(){
    $('#loadingDiv').show();
    var intervalId = setInterval(function() {
        if($('#success').html() != '') {
            clearInterval(intervalId);
            $('#loadingDiv').hide();
        }
    }, 100);
});

而 (!$('#success').html() == '') 将冻结所有其他操作并将永远持续下去。但是 - 如果你真的不能在成功回调中添加一些代码,最好仔细检查一下。可能ajaxComplete可以帮助你。

于 2012-09-03T05:49:12.220 回答
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'); 
    });
});
于 2012-09-03T05:59:59.813 回答