好吧,我很确定我在这里遗漏了一些非常明显的东西,但到目前为止我找不到合适的解决方案。我想要做的很简单:让用户在表单中写入内容,让他提交表单,并将该输入写入同一页面上的textarea。
这是我的代码:
<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会在恢复显示任何内容之前简要显示我的输入。我的猜测是textarea字段只在execute()函数的持续时间内改变。
当我将input type="submit"
更改为<button>
时,一切都按预期工作,但我很确定我不应该这样做。
答案 0 :(得分:2)
您需要取消提交按钮的默认事件,否则它只是提交表单(在这种情况下,基本上会重新加载页面,因为没有带名称的表单元素)。在return false;
之后添加execute()
(在{2}之间添加;
)
答案 1 :(得分:1)
由于您的按钮属于submit
类型,因此它会在执行execute()
方法后提交您的表单。您可以将按钮类型更改为type="button"
,但您不会有此提交行为。
注意 - 在这种情况下使用<button>
是可以的。它与<input type="button"
基本相同。