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.
<!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>
document.write
call happens when the page first loads.name
is only assigned touservariable
, which is undefined at that time. You should really step through the code with a proper debugger. – Matt Ball Jun 15 '12 at 4:09