2012-03-25 84 views
1

我在我的第一個黑客馬拉松,並試圖完成我的項目。我非常非常新的JavaScript ...我知道的一切,我在過去的2個小時中從字面上瞭解到。這是說...使用eval來評估一個textarea中的javascript代碼片段?

所以我知道eval不是最大的使用,但我想寫一個簡單的程序,您可以在其中輸入一個JavaScript代碼片段到一個textarea中,單擊一個執行按鈕,並讓JavaScript在另一個textarea內執行。我現在試圖遠離jquery,因爲我想在添加另一個級別的複雜性之前獲得真正的基本想法,這就是爲什麼我不使用id的原因......但是如果jquery是唯一的方法要做到這一點,那麼我想我必須在接下來的8小時內小馬學習。

代碼如下(ISH):

function executeJS() 
{ 
    var result = eval(game.input.value); 
    game.execute.value=result; 
} 
<head> 
    <body> 
    <H1>PRogram</H1> 
      <form name="game"> 

      <textarea name="execute" rows="5" cols="30" value=""></textarea><br> 
      <textarea type="text" name="input" rows="10" cols="30" value=""></textarea> 

      <input type = "button" value = "guess" onclick = "executeJS()</input> 
      </form> 
    </body> 
</head> 

我沒有收到我的執行盒的輸出。

任何有識之士將不勝感激。

+0

你是說你「因爲你試圖遠離jQuery而不使用id's」?這沒有意義。 Id和jQuery沒有任何關係(至少不超過名稱,節點,類和所有其他東西) – Jakob 2012-03-25 08:42:41

+0

我也說過我已經學習了2個小時的JavaScript。我真的會把周圍的人說出來。 – gfppaste 2012-03-25 08:43:29

+0

是啊,對不起:)我不是故意貶低它的意思。無論如何,正確的做法是使用ID。我會寫一個答案。 – Jakob 2012-03-25 08:53:45

回答

2

「遊戲」不是一個變量。它是一個DOM元素名稱。
如果你想獲得它的對象,給它一個id讓我們說"game",並使用document.getElementById('game')

  • 請注意,您<head>環繞<body>
  • 你的JavaScript代碼是不是裏面<script></script標籤。
2

這是working version。不過,我會重新考慮你的想法沒有使用ID或庫:

function executeJS() { 
    var game = document.forms['game']; 
    var result = eval(game.input.value); 
    game.execute.value = result; 
} 

,提防eval