2011-12-16 38 views
2

我尝试使用下面的代码获取从两个输入变量,并添加在一起使用CoffeeScript的,像这样:CoffeeScript的形式

这里的HTML ...

<form action="" method="GET"> 
    <input type="text" name="input1" value="2"> 
    <input type="text" name="input2" value="3"> 
    <input type="button" name="button" value="Equals" onClick="math(this.form)"> 
    <span id="result" /> 
</form> 

而javascript ...

math = (form) -> 
    input1 = form.input1.value 
    input2 = form.input2.value 
    document.getElementById("result").innerHTML = parseInt(input1, 10) + parseInt(input2, 10) 

但是,它不会输出页面上的任何内容。当我点击按钮时,控制台告诉我“数学”没有被定义(在html代码的第四行。)_

你们知道这里出了什么问题吗?

+0

什么是编译的版本是什么样子? – 2011-12-16 02:49:11

回答

4
window.math = (form) -> 
    input1 = form.input1.value 
    input2 = form.input2.value 
    document.getElementById("result").innerHTML = parseInt(input1, 10) + parseInt(input2, 10) 

Coffeescript有固有的范围。 默认情况下,它在封装器中将数学作为一个局部变量,因此您需要明确定义window.math以从网页的其余部分访问它。

的CoffeeScript确实是更好,当你正在使用某种形式的JavaScript选择器引擎的,那阉是天然的或jQuery的,等等