html form.input.value是不是为什么打印?

时间:2010-04-09 01:31:23

标签: javascript html

...

<script type="text/javascript">
 function printvalues() {
  document.write("This is my first JavaScript!");
  document.write(form.inputobj1.value);
  document.write(form.inputobj2.value);
 }
</script>
<form name="form">
 <input name="inputobj1" value="123" />
 <input name="inputobj2" value="abc"/>
 <input type="button" onclick =" printvalues();"> 
</form>

为什么这一行没有打印值document.write(form.inputobj1.value);

4 个答案:

答案 0 :(得分:3)

document.write会覆盖当前文档。完成后,整个<form>元素从DOM中消失,因此无法找到它及其输入元素。

document.write(...)替换为例如alert(...),它应该有效。

或者,您可以将其写为另一个元素的innerHTML。 E.g。

<script type="text/javascript">
    function printvalues() {
        var div = document.getElementById("divId");
        div.innerHTML += "This is my first JavaScript!";
        div.innerHTML += form.inputobj1.value;
        div.innerHTML += form.inputobj2.value;
    }
</script>
<form name="form">
    <input name="inputobj1" value="123" />
    <input name="inputobj2" value="abc"/>
    <input type="button" onclick =" printvalues();"> 
</form>
<div id="divId"></div>

请注意,这不是“最佳做法”,但是因为您正在学习...完成核心Javascript后,我建议您完成jQuery。它是一个Javascript库,可以极大地简化DOM操作,以及更多;)

答案 1 :(得分:1)

document.write()

可能不是你想要的。它将覆盖页面的全部内容。您收到该错误的原因是因为当您调用document.write时,它会删除所有以前的内容,因此该页面将不再具有表单元素。

答案 2 :(得分:0)

通常你会使用诸如document.getElementById之类的函数来获取DOM元素。例如:

alert( document.getElementById('inputobj1_id').value );

对于DOM元素:

<input id="inputobj1_id" name="inputobj1" value="123" />

答案 3 :(得分:0)

<script type="text/javascript">
function printvalues() {
var x = document.form.inputobj1.value;
var y = document.form.inputobj2.value
document.write("<Html><head></head><body><h1>");
document.write("This is my first JavaScript!</h1></br><h3>");
document.write(x);document.write("</h3></br><h3>");
document.write(y);document.write("</h3></body></html>");
}
</script>
<form name="form">
<input name="inputobj1" value="123" />
<input name="inputobj2" value="abc"/>
<input type="button" value="click" onclick =" printvalues();"> 
</form>