为什么我的javascript函数只有在我手动输入输入时才有效?

时间:2012-04-17 11:25:18

标签: javascript function

我有一个在手动设置值时可以正常工作的功能

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.

2 个答案:

答案 0 :(得分:3)

在第二种情况下

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

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

基本上是这样的:

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

答案 1 :(得分:0)

发表评论和演示

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

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

DEMO