在Ajax完成功能后更改div html内容

时间:2014-10-15 10:03:48

标签: javascript jquery css ajax twitter-bootstrap

我有以下div:

<div class="progress" id="progress-bar"></div>

以下带有ajax调用的javascript确实返回0作为数据。但是,当我将代码放入ajax调用的.done部分时,它不会将html内容添加到div中。当我将该代码放在javascript的开头时,进度条出现,其中45%的条填满。

$("#ipaddress_form").submit(function(e) {           
    var ipjs = $("#input_ipaddress").val();
    var hostjs = $("#input_hostname").val();
    var commjs = $("#input_comms").val();

    $.ajax({
        url: "include/handlingJS.inc.php",
        type: "POST",
        data: {
            "ipjs": ipjs,
            "hostjs": hostjs,
            "commjs": commjs    
        }

    }).done(function(data) {
        alert(data);
        if(data == 0) {
            bar = $('#progress-bar');
            bar.html('<div class="progress-bar progress-bar-striped active"  role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 45%"><span class="sr-only">45% Complete</span></div>');
        }
    });
});

我错过了什么吗?

3 个答案:

答案 0 :(得分:0)

如果您在警报框中获取数据,则错误可能是

  1. 获取响应数据的格式。它可能不是整数值。

  2. 它可能是一个带有空格的字符串。

  3. 您可以尝试data.trim() == '0'

答案 1 :(得分:0)

    if(parseInt(data) === 0) {
        bar = $('#progress-bar');
        bar.html('<div class="progress-bar progress-bar-striped active"  role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 45%"><span class="sr-only">45% Complete</span></div>');
    }

答案 2 :(得分:0)

问题在于我提交表单的部分。我将表单提交事件更改为按钮单击事件:

$("#loading").on("click", function(e) {
    // do ajax stuff here
}
但是,我不能解释它为什么会起作用。