我使用下面的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变量值回显到同一个字段吗?
答案 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;