這是我的第一篇文章,無論如何,我會直截了當地指出。表單文本字段變量在Javascript中顯示爲undefined
我有一個表單,當用戶寫入他們的名字時,Javascript將值保存到全局變量「ch_name」。當我通過網站上任何一點的警報訪問這個變量時,它總是顯示我輸入的正確值。但是,它只適用於警報,當我嘗試通過使用它始終顯示爲未定義的變量引用用戶。
我試過重新排序的代碼,如果它沒有正確加載,這還沒有產生任何結果。我開始想知道我是否正確引用它,因爲我還是JavaScript的新手。
正如你可能會發現我的代碼是一團糟,但這裏是我得到的。
var ch_name; //my global variable
var data = new Array(); //I've taken a snippet out of an array of 8.
data[0] = '<p>Question 1</p>' + ch_name + "\n" + //ch_name is referenced on this line.
'<button onclick="results1()">Click Me</button>' + "\n" +
'<button onclick="results2()">Click Me</button>' + "\n" +
'<button onclick="results3()">Click Me</button>';
function charName(form) { //This is the code that changes the global variable ch_name.
ch_name = document.nameform.user.value;
ranData = Math.floor(Math.random() * data.length);
document.getElementById("placeholder").innerHTML = data[ranData];
}
HTML片段:
<form NAME="nameform" method="GET">
<p>Enter your character name:</p> <input type="text" name="user" value="" />
<input type="button" value="Start" onClick="charName(this.form)"/>
</form>
<div id="placeholder"></div>
通過警報引用的頻道 - 名稱的任何地方給了我正確的結果,在空白頁面加載,並且輸入的字符串後,給出了正確的名稱。但任何時候,我通過數組變量引用它,它顯示一個未定義的。這不是完整的代碼,但我確定在變量名稱等方面沒有衝突。我已經掃描了好幾次,我確信這只是我是一個白癡。
有沒有解決這個問題的方法?我現在已經準備好將整個代碼全部放在ch_name後面,以便專注於頁面的其他區域。
感謝您的閱讀和任何幫助。
'document.nameform.user.value'這樣做的工作嗎?因爲名稱屬性被取消http://www.w3.org/TR/xhtml1/#C_8 – cjds
不確定卡爾,我的朋友告訴我這也是問題,但我試圖找出解決方法。我不會說謊,我真的不明白你給我的鏈接。我事先做了一些關於表單的研究,這是人們使用的代碼,我必須出現一些非常舊的網頁。 – Darrell
剛剛檢查過。它將用於表單,儘管將來可能會被刪除。不要嘗試訪問其他元素上的名稱。但是,代碼應該運行。 – cjds