Javascript和表单

Javascript和表单,javascript,Javascript,这是我的html: <form id="questions"> <p>Answer: <input type="text" name="textbox1" size="30" /> <button onclick="answers()">Submit</button></p> </form> 我的问题是,当我单击按钮时,document.write字符串瞬间闪烁。我不知道为什么这只发生在一瞬间。试试推杆 ty

这是我的html:

<form id="questions">
<p>Answer: <input type="text" name="textbox1" size="30" /> 
<button onclick="answers()">Submit</button></p>
</form>
我的问题是,当我单击按钮时,document.write字符串瞬间闪烁。我不知道为什么这只发生在一瞬间。

试试推杆

type="button"
在按钮元素中

  • 不要使用
    document.write()
    ;它将替换页面。
    相反,使用domapi

  • 您需要从处理程序
    返回false
    ,以防止提交表单的默认操作


即使表单上没有任何操作,一些浏览器仍然会在提交时重新加载页面,我猜这就是发生的情况

如果onclick事件返回false,它将停止默认行为。您还应该向表单中添加一个操作,以符合标准

<form id="questions" action="#">
    <p>Answer: <input type="text" name="textbox1" size="30" /> 
    <button onclick="return answers()">Submit</button></p>
</form>

function answers () {
   var x = document.getElementById("questions");
   var y = x.elements["textbox1"].value;
   document.write("Hello " +y);
   return false;
}   

答复:
提交

函数答案(){ var x=document.getElementById(“问题”); 变量y=x.elements[“textbox1”].值; 文档。写入(“Hello”+y); 返回false; }
返回false以避免提交表单

  function answers () {
  var x = document.getElementById("questions");
   var y = x.elements["textbox1"].value;
  document.write("Hello " +y);
  return false;
 }   

您根本不应该有一个
。@SLaks操作似乎只是开始测试获取表单控件的值并将其写入页面。例如,在OP中使用表单是可以的。@实际上,它可能会这样做。默认类型是submit,因此将其更改为button时,它将不会提交表单。@SLaks-a不执行任何操作@Jacob OP也不需要像在页面加载完成后调用一样使用,它将在写入之前首先清除文档;您没有从处理程序返回,正如我测试的那样,“action”没有什么不同,但是在html和javascript上添加“return”就产生了不同。这在概念上是如何工作的?
  function answers () {
  var x = document.getElementById("questions");
   var y = x.elements["textbox1"].value;
  document.write("Hello " +y);
  return false;
 }