0

我正在尝试获得一个功能来打印出用户在文本框中输入的任何内容。我在我的提交按钮上使用 onClick 作为属性。我知道我正确设置了它,因为它会闪烁答案,但只是一瞬间。我怎样才能让输入留在页面上?代码如下: HTML:输入您要发布到网站的内容!

HTML:

<div id="main_div">
<section id="leftbox">
<form name="mybox">
    Type what you want to post to the website!:
    <br />
    <input type="textbox" size="15" maxlength="15" name="text"     id="text">
    <br />
    <input type="submit" value="Submit!" onClick="doFirst()">
</form>
</section>
</div>
<div id="insert"></div>

Javascript:

function doFirst(){
    text = document.getElementById('text');
   insert = document.getElementById('insert');     
  if(text.value == "")
  { 
    insert.innerHTML = "Please input something!";
    return false; 
  }
  else
  { 
    insert.innerHTML = text.value; 
  } 
}
4

2 回答 2

1

试试这个:使用 type=button

<input type="button" value="Submit!" onClick="doFirst()">

或使用 type=submit

<form name="mybox" onsubmit="doFirst(); return false;">
    <input type="submit" value="Submit!">
</form>

解释:

onclick执行提交按钮中的操作。你一直看到页面没有任何变化,因为有一个FORM。关键点:表单在JS函数之后立即处理提交动作。在表单中添加停止默认操作,意味着:doFirst()onsubmitreturn false

<form name="mybox" onsubmit="return false;">
    <input type="button" value="Submit!" onClick="doFirst()">
</form>

为了简化更改,请在表单触发器中使用按钮代替提交类型,或使用 onsubmit 代替 onclick。

于 2014-04-10T03:17:27.557 回答
0
onClick="doFirst()"

被转换为匿名函数:

function(){ doFirst() }

并且无论该函数返回什么都决定了提交是应该完成还是中止,所以你应该使用:

onClick="return doFirst();"

换句话说,doFirst 返回一些东西是不够的,无论 doFirst 返回什么都应该在 onClick 内部再次返回。

于 2014-04-10T03:54:50.330 回答