0

我试图在文本框之间移动文本,但失败了。这种方法有什么问题。

 <html>
<script>
function fill(){
document.getElementById("text2").value = document.test.text1.value 
}
</script>

<form name="test" id="test">
<input type="text" name="text1" id="text1"/>
<input type="text" name="text2" id="text2" value=""/>
<button name="b" onclick="fill()">move</button>
</form>
</html>
4

1 回答 1

1

一个原因是按钮正在提交表单。这需要被压制。此外,避免内联(又名 DOM 零)事件声明并更正式地绑定事件:

function fill(evt){
    document.getElementById("text2").value = document.test.text1.value;
    evt.preventDefault();
}
document.addEventListener('DOMContentLoaded', function() {
    document.querySelector('#test button').addEventListener('click', fill, false);
}, false);

我在那里使用了一些现代方法,因此如果您需要支持较旧的 IE,您可能需要对其进行调整,但您明白了。

另请注意,如果填充函数仅用于此按钮而不用于其他位置,则无需像我在这里那样使用名称定义它并引用它,您可以直接在事件绑定中将其作为匿名函数引用。查找“匿名函数”以了解更多信息。

于 2012-06-30T20:27:49.567 回答