2014-02-07 106 views
1

我想使它,當我點擊提交按鈕在HTML中,我們在輸入字段中的值替換P元素內的項目有id「numberz」。JavaScript改變HTML但改變立即默認回硬編碼值

我可以得到代碼做到這一點,但該網站立刻變回具有與ID「numberz」 P元素的默認值。

如何防止更改回元素的默認值是硬編碼到HTML文件的網站的?

<!DOCTYPE html> 

<html> 
    <head> 
     <title>JS test</title> 
     <script> 
      function e() { 
       var x = document.getElementById("numberz"); 
       var z = document.getElementById("num").value; 
       //alert(x.innerHTML + " s " + z);// 
       x.innerHTML= z; 
      }; 
     </script> 
    </head> 
    <body> 
     <p>The number is:</p> 
     <p id = "numberz">s</p> 
     <br> 
     <br> 
     <form onsubmit = "return e();"> 
      <input id = "num" type = "text" size = "4" placeholder = "test"/> 
      <input type = "submit" value = "Submit"/> 
     </form> 
    </body> 
</html> 
+1

如果您不希望表單在執行此替換後提交,那麼您應該將該操作綁定到「按鈕」元素或其他內容,而不是「submit」元素。 – Ord

+0

即''按鈕onclick =「e()」>點擊我來替換文字' – Ord

+0

我不同意,Ord。在這種情況下,當前的實現是好的,因爲如果用戶在鍵盤上輸入「enter」而文本元素具有焦點時它將具有相同的效果。這種方式更直觀。 –

回答

4

由於表單正在提交,您需要取消表單提交。

 function e() { 
      var x = document.getElementById("numberz"); 
      var z = document.getElementById("num").value; 
      //alert(x.innerHTML + " s " + z);// 
      x.innerHTML= z; 
      return false; 
     }; 
+0

非常感謝!爲了澄清未來,如果我不想將html更改爲默認值,我應該執行「返回false」操作。 – Nameo0

+1

返回false將取消通常會與事件一起採取的任何操作。在這種情況下,它是與表單綁定的onsubmit事件,默認行爲是表單提交,這是返回false阻止的內容。 –