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

Why does my javascript function only work if I manually type in the inputs?

本文关键字:输入 手动输入 有效 javascript 我的 函数 为什么      更新时间:2023-09-26

>我有一个函数,当手动设置值时可以完美运行

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.

在第二种情况下

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

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

所以基本上:

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

发布我的评论和演示

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

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

演示