将用户输入的 javascript 变量写入文档
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/11044423/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Writing a javascript variable from user input to the document
提问by I wrestled a bear once.
This seems like it should be relatively straightforward, I cannot figure out what I'm doing wrong. I need to take input (user's name) from the user via textbox, set it as a variable, and display it on the page. I keep getting "undefined" instead of the user's name.
这似乎应该相对简单,我无法弄清楚我做错了什么。我需要通过文本框从用户那里获取输入(用户名),将其设置为变量,并将其显示在页面上。我不断收到“未定义”而不是用户名。
Here's a condensed version. This will display a Div that covers the entire page which contains an input for the user to type their name. when the user hits submit the div disappears and the name is set to a variable. I left the form handling functions in case they are relevant to the problem.
这是一个精简版。这将显示一个覆盖整个页面的 Div,其中包含供用户键入其姓名的输入。当用户点击提交时,div 消失并且名称被设置为一个变量。我离开了表单处理函数,以防它们与问题相关。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>HOME</TITLE>
</HEAD>
<BODY>
<CENTER>
<BR />
<FONT COLOR="RED" FACE="ARIAL BOLD" SIZE="5">test</FONT>
<BR />
<script language="javascript">
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();
var name = uservariable;
function setName(){
uservariable = document.forms["username"]["user"].value;
var ele = document.getElementById("nameInput");
if(ele.style.display == "none") {
ele.style.display = "block";
}
else {
ele.style.display = "none";
}
document.getElementById('element_7').value = uservariable;
}
function validateForm()
{
var x=document.forms["username"]["user"].value;
if (x==null || x=="")
{
alert("Rembrandt's first name was Beauregard, what is yours?");
}
else
{
setName()
}
}
</script>
<DIV id="nameInput" STYLE="background-color:#ccc;position:fixed;width:100%;height:100%;top:0px;left:0px;z-index:1000;display:block;">
<br /><br /><FONT FACE="ARIAL BOLD" SIZE="3">First Name:</font><br />
<form name="username" action="javascript:validateForm()">
<input type="text" name="user" value="" size="20"><br>
<input type="submit" value="Start Shift">
</form>
</div>
<script language="javascript">
document.write(name + "s LEADS SUBMITTED FOR " + month + "/" + day + "/" + year + ":</B>");
</script>
</center></td></tr></table>
</div>
</CENTER>
</BODY>
</HTML>
回答by jahroy
<head>
<script>
function doStuff()
{
var nameElement = document.getElementById("someInput");
var theName = nameElement.value;
document.getElementById("someDiv").innerHTML += theName;
}
</script>
</head>
<html>
<div id="someDiv">
Hello
</div>
<br><br>
<input id="someInput" type="text">
<input type="button" value="Say Hello" onClick="doStuff()">
<br>
</html>