我正在编写一个简单的程序来教授使用Meteor的输入,表单,模板和会话的基础。
if (Meteor.isClient) {
Session.set('value',0);
Template.hello.helpers({
result: function(){
return(Session.get('value'));
}
});
Template.hello.events({
'submit form': function(event) {
event.preventDefault();
var s1=event.target.num1.value;
var s2=event.target.num2.value;
var s = s1 - s2;
Session.set('value',s);
}
}); }
问题是当操作符更改为+时,它似乎连接了两个数字。其他基本操作员工作正常。这是一个错误吗?这是我可以教给学生的最简单的例子,我被卡住了。
我正在使用Mac 10.6.8和Meteor 1.1.0.2
答案 0 :(得分:0)
在没有看到JSFiddle的情况下很难分辨,但我敢打赌,问题在于其中一个值或两者都是作为字符串传递的。
加号是JS的连接运算符,如果两者都不是数字而另一个是字符串,则会从数字到字符串执行类型强制。 - 运算符将以另一种方式执行它,并将字符串转换为数字。
检查传入的数据类型并确保它们都是数字。如果不是,请使用parseInt
将其转换为数字。
答案 1 :(得分:0)
string + string = string。
试试这个:
var a = Int(arc4random_uniform(5))
var b = Int(arc4random_uniform(5))
var c = Int(arc4random_uniform(5))
var d = Int(arc4random_uniform(5))
从DOM中获取数字时,始终将字符串转换为数字。