幾年前,我開發了一個LOGO般的基本烏龜圖形解釋器,我不想把它放在網上(因爲我的表弟一直在竊聽我)。儘管我對HTML,Javascript編碼頗爲陌生,但我認爲我會試試&,以此作爲學習體驗。自定義Javascript函數不能按我的預期工作?
下面的代碼只是基本的用戶界面(我的用戶界面看起來非常醜,我會在以後清理它)。
我已經寫了一個叫做「cmd-form」的onsubmit的Javascript函數pushCmd。
function pushCmd()
{ var cmdText = document.forms["cmd-form"]["cmd-text"].value;
var srcElement = document.getElementById("source-container");
var srcText = new String(srcElement.innerHTML);
srcText = srcText.toUpperCase();
if (srcText.indexOf("NO CODE") != 0)
{
srcText = cmdText;
}
else
{
srcText += "<br>" + cmdText;
}
srcElement.innerHTML = srcText;
}
表單聲明如下。
<div id="command-container">
<form name="cmd-form" action="" onsubmit="pushCmd()" onreset="resetSource()" method="post">
<input type="text" name="cmd-text" size="80">
<input type="submit" value="Send">
<input type="reset" value="Reset">
<input type="button" value="Run">
</form>
</div>
pushCmd函數應該改變div「source-container」的HTML內容,默認情況下它看起來像下面那樣。
<div id="source-container">NO CODE</div>
我提交第一個文本(比如說「FWD 100」)後。 「源容器」的內容應改爲「FWD 100」。然後如果我提交「RT 90」,內容應該是「FWD 100
RT 90」。這是我期望的。
但是當我提交文本。 「源容器」的內容只是瞬間變化,然後再次回到「無代碼」。爲什麼會發生這種情況,誰能指出我的錯誤在哪裏?
我試過都得到&後的方法,但結果是一樣的。我在Javascript控制檯中看不到任何錯誤或警告。我使用谷歌瀏覽器版本26.0.1410.63如果重要的話(我猜不是)。
如果您需要任何進一步的信息或完整的HTML源代碼,請讓我知道。
既然你是js的新手,我建議你用jQuery學習。它很容易學習/使用,但功能非常強大,可以使許多事情更容易,包括選擇某些元素或元素組,綁定事件和動畫。 – smerny 2013-04-24 20:57:27
@smerny ...感謝您的建議(沒有諷刺)。學習jQuery是在我的待辦事項清單上。 – 2013-04-24 21:07:45
只是我的2美分,記得在學習jQuery的同時不斷嘗試學習JavaScript。可以很容易地學習如何使用框架,而不是繼續開發對幕後的理解。 – keithwyland 2013-04-24 21:14:27