好吧,我很确定我在这里遗漏了一些非常明显的东西,但到目前为止我就是找不到合适的解决方案。我想要做的很简单:让用户向表单中写入内容,提交表单,然后将输入内容写入同一页面上的文本区域。
这是我的代码:
<html><head></head>
<body>
<form name='registration'>
<label for="input">Input:</label>
<input type="text" id="input"/>
<input type="submit" id="submit" value="Submit" onclick="execute()"/>
</form>
<div id="results">
<span>Result</span>
<span><textarea cols="30" rows="5" id="resulttext" readonly="readonly"></textarea> </span>
</div>
<script>
function execute()
{
var result = document.getElementById("input").value
document.getElementById("resulttext").value=result;
}
</script>
</body>
</html>现在,如果我在表单中输入一些内容,那么在返回到什么都不显示之前,文本区域会短暂地显示我的输入。我的猜测是,textarea字段仅在execute()函数的持续时间内更改。
当我将input type="submit"更改为<button>时,一切都正常工作,但我非常确定我不应该这么做。
发布于 2012-09-28 05:39:39
因为您的按钮是submit类型,所以它将在执行execute()方法之后提交您的表单。您可以将按钮类型更改为type="button",这样就不会有这种提交行为。
http://jsfiddle.net/PCCbh/
注意-在这种情况下,使用<button>是可以的。它本质上与<input type="button"相同。
https://stackoverflow.com/questions/12630342
复制相似问题