2013-09-30 57 views
1

我使用下面的JavaScript來收集一些文本框的值,做一些計算,結果顯示爲一個innerHTML的內容保持innerHTML的值從HTML表格後,一個JavaScript提交

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表單的一部分。在表單提交後,我可以將所有其他表單值保留在同一字段中。但無法顯示以上輸出。它只是清除我的價值觀。無論如何,我可以在form submision之後將這個javascript變量值回顯到同一個字段嗎?

+0

如果頁面刷新,就像清潔白板一樣,您必須重新開始。如果這些字段在那裏,則觸發該函數運行。 – epascarello

回答

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; 
+0

謝謝..作出更正,它工作正常... :) – acr

0

您引用了一個不存在的變量(disp-siz)。使用您之前創建的變量result

result.innerHTML = txt; 
+0

:我已將其更改爲'result.innerHTML = txt;'。仍然在表單提交後,該值不顯示 – acr