在html表单提交后保持javascript的innerhtml值

时间:2013-09-30 20:26:16

标签: javascript php jquery html-form

我使用下面的javascript从一些文本框中收集值,做一些计算并将结果显示为innerhtml内容

window.onload = function () {
    var left = document.getElementById('mem_count');
    var right = document.getElementById('siz_single');
    var result = document.getElementById("disp_siz");
    function check(a, b, elem) {

        var txt = '';
        if (a === 0 && b === 0) {

        } 
        else if (a !== 0 && b === 0) {
         txt = "Enter size of single device in above column"

        }
        else if(a == 0 && b !== 0){

        txt = "Enter Meta member count in above column "
        }

        else  {
            var c = 1 +a        
            txt = "Your meta device size is " + (c*b) +" MB" + " = " + (c*b/1024) +" GB ";
        }
disp_siz.innerHTML = txt;

    }

    mem_count.onkeyup = calc;
    siz_single.onkeyup = calc;

    function calc() {
        var a = parseFloat(mem_count.value) || 0;

        var b = parseFloat(siz_single.value) || 0;
        check(a,b, this);
    }
}

,输出将显示在div

之间
<div id="disp_siz"><-----above output will come here----></div>

此div是html表单的一部分。表单提交后,我可以将所有其他表单值保留在同一个字段中。但是无法显示上面的输出。它只是清除我的价值观。无论如何,我可以在表单子化后将这个javascript变量值回显到同一个字段吗?

2 个答案:

答案 0 :(得分:1)

第一个选项:

在服务器端设置它。

第二个选项:

如果页面刷新,就像清洁白板一样,你必须重新开始。如果字段在那里,则触发该函数运行。

calc();添加到onload功能的末尾。

    ...
    ...

    function calc() {
        var a = parseFloat(mem_count.value) || 0;

        var b = parseFloat(siz_single.value) || 0;
        check(a,b, this);
    }
    calc();  //<-- added this to trigger the calculation
}

另一个问题:

你不应该直接通过他们的id引用元素。你应该使用

document.getElementById("disp_siz").innerHTML = txt;

答案 1 :(得分:0)

您正在引用不存在的变量(disp-siz)。使用您之前创建的变量result

result.innerHTML = txt;