2017-08-24 36 views
0

後,我對提交執行這個腳本:爲什麼HTML變回JavaScript執行

function analyze() { 
    var answer = document.forms["questions"]["answer1"].value; 
    var item = document.getElementById("content"); 
    item.innerHTML=answer; 
} 

執行腳本,但div不守值,它改變了。

+0

呃這是什麼問題? –

+0

您可能要停止提交 – SLaks

+1

https://stackoverflow.com/questions/3350247/how-to-prevent-form-from-being-submitted – TW80000

回答

0

當您進行提交時,您的頁面將重新呈現,導致您的所有元素都回到其初始狀態。所以改變你的div或者你在HTML中用類內容所做的任何改變將會重置爲空白。

您可能希望將答案保存在瀏覽器LocalStorage或某種數據結構中,然後將其請求發送出去。

+0

我在這個函數的末尾添加了return false,但其行爲相同。 – harry

0

將您的答案值保存到localStorage或sessionstorage,然後在div中顯示相同的值。如果您正在提交表單,那麼它將重新加載頁面並清除div的innerHTML。

0

提交按鈕會導致頁面重新渲染。你有一些選項來防止這種情況:

  1. 不要使用提交按鈕,使用正常的按鈕發生了SAY提交。然後,您將爲該按鈕運行「onClick」函數,而不是「onSubmit」。 (這是我推薦的
  2. 從該函數返回false和/或調用PreventDefault。
  3. 實際上將它提交給服務器並讓服務器完成工作並返回頁面(可能因性能原因不是一個好選擇)。
  4. 編輯:你可以做一些本地或會話存儲,但似乎有點問題你有rube-goldburg。
+0

我在這個函數的末尾添加了return false,但其行爲相同。 – harry

+0

返回false僅在實際返回時纔有效。它非常脆弱;任何異常或錯誤都可能阻止它獲得回報。我建議在這裏使用非提交按鈕是有原因的。 –