如何从javascript函数外部获取表单输入?
我正在尝试使用javascript显示表单输入。所以我使用了这个JS代码块如何从javascript函数外部获取表单输入?,javascript,Javascript,我正在尝试使用javascript显示表单输入。所以我使用了这个JS代码块 <html> <head> </head> <body> <script> var text = document.form1.name.value; function printText(){ document.write(text); } </script> <form name=form1> <inp
<html>
<head>
</head>
<body>
<script>
var text = document.form1.name.value;
function printText(){
document.write(text);
}
</script>
<form name=form1>
<input type="text" id="txt" name="name" ><br><br>
<input type="button" value="Submit!" onClick="printText();" >
</form>
</body>
</html>
var text=document.form1.name.value;
函数printText(){
文件。书写(文本);
}
但上面的代码不起作用。它给了我不精确的输出
但当我尝试在代码下面工作时
<html>
<head>
</head>
<body>
<script>
function printText(){
var text = document.form1.name.value;
document.write(text);
}
</script>
<form name=form1>
<input type="text" id="txt" name="name" ><br><br>
<input type="button" value="Submit!" onClick="printText();" >
</form>
</body>
</html>
函数printText(){
var text=document.form1.name.value;
文件。书写(文本);
}
所以我的问题是为什么我们不能使用这个var text=document.form1.name.value代码>函数外的语句
谢谢。您在文档加载时为变量text
赋值,起初它是空的。在第二种情况下,您在某个按钮上调用函数,单击该按钮可以获取表单值并将其打印出来,您的问题只是计时:JavaScript在文档中的位置执行。因此,您访问的DOM可能没有完全构建
因此,在第一个示例中,当执行行text=…
时,解析器不知道表单元素。此外,您的命令不会创建对该值的引用,而只是复制它
但是,在第二种情况下,只定义函数(这很好),并在调用函数时(对变量text
求值)表单元素存在,一切正常。在窗口加载时分配表单的值,此时表单未初始化,这就是为什么它会给未定义的值
如果要使var文本成为全局文本,请执行以下操作:
var text = "";
function printText(){
text = document.form1.name.value
document.write(text);
}
如果您将脚本放在最后,那么它将初始化值null,因为在开始时,该值将是输入类型的null
因此,您需要在开始时初始化变量,然后将值放入其中。处理得很好