我正在尝试在文本框之间移动文本,但失败了。 这种方法有什么问题。
<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>
答案 0 :(得分: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,你可能需要调整它,但你明白了。
另请注意,如果fill函数仅用于此按钮而不是其他地方,而不是使用名称定义并按照我的方式引用它,则可以直接在事件绑定中将其作为匿名函数引用。查看“匿名函数”以获取更多信息。