2012-03-25 82 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