0

当手动设置值时,我有一个可以完美运行的功能

function doSomeMath(array,number){
  some math here.....
}

仅当我手动设置每月账单时才有效

function customer(){
 this.monthlyBill = 300;
}

当我这样做时,它工作正常:

var someArray = [.2,.3,.6];
var customerData = new customer();
doSomeMath(someArray,customerData.monthlyBill);

问题是我不想手动设置它,我想从表单输入元素中获取值。

当我这样做时,它搞砸了:

function customer(){
 this.monthlyBill = $('#monthly_bill').val(); 
}

我转到#monthly_bill 表格并输入 300,我得到一个完全不同的值。

我打字有什么区别

this.monthlyBill = 300

this.monthlyBill = $('#monthl_bill').val();    // and then typing 300 into a form.
4

2 回答 2

3

在第二种情况下

this.monthlyBill = $('#monthl_bill').val(); 

它被认为是一个字符串。您需要将其解析为整数

所以基本上:

this.monthlyBill = parseInt($('#monthl_bill').val()); 
于 2012-04-17T11:26:49.330 回答
0

发表我的评论和演示

300 是一个数字 - xxx.val() 是一个字符串 - 尝试 parseInt( $('#monthl_bill').val(),10);

如果有人输入前导 0,则需要 ,10 基数,因为这表示八进制

演示

于 2012-04-17T11:32:05.560 回答