2014-02-07 51 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阻止的内容。 –