2012-06-15 116 views
4

這似乎應該是相對直接的,我無法弄清楚我做錯了什麼。我需要通過文本框從用戶輸入(用戶名),將其設置爲一個變量,並將其顯示在頁面上。我不斷收到「未定義」而不是用戶名。從用戶輸入寫入一個javascript變量到文檔

這是一個精簡版。這將顯示一個覆蓋整個頁面的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> 
+0

的'document.write'調用發生時,第一次加載頁面。 'name'只能分配給'uservariable',這個時候是不確定的。您應該通過適當的調試程序逐步完成代碼。 –

+0

@MattBall用正常的ASCII名稱來看你。 –

回答

5
<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> 
+0

+1用於避免邪惡的document.write。 –

+0

thAnk你謝謝你,謝謝你馬特指出問題,併爲jahroy提供解決方案!這麼快!謝謝! –

+0

是啊!告別document.write,hello document.getElementById – tagoma

相關問題