我找到了将多个输入字段的数量加在一起并输出结果的方法。但是,我试图找到一种方法在一个字段中添加数字,如果可能的话。我基本上希望它能够像excel单元格那样工作,并在每个单元格之间使用+来加起来。
因此,当用户输入= 125 + 11 + 110时,它会自动将这些数字添加到并显示该框旁边的总数。
答案 0 :(得分:2)
您可以拆分字符串:
var expression = "125+11+110";
var operands = expression.split("+");
var sum = 0;
for (var i = 0; i < operands.length; i++) {
sum += parseInt(operands[i]); // use parseFloat if you use decimals as well.
}
但是上面的例子不会在单个文本框中知道多种类型的操作。例如,100+76-45
会给您错误的答案。
您也可以使用eval,但要知道it can be harmful if you used it in a wrong way。
var expression = "125+11+110";
var sum = eval(expression);
如果您使用eval:
答案 1 :(得分:0)
您应该使用eval
。像这样......
var input = "125+11+110";
var answer = eval(input);
答案 2 :(得分:0)
这是脏方法。它在加号之间拆分输入,并将数组中的值相加:
var userinput = "125+11+110";
var userinputarray = userinput.split("+");
var totalamount = 0;
$(userinputarray).each(function(key,value){
totalamount += parseFloat(value);
})
它不处理减法。但是你可以改为进行正则表达式匹配:
var userinput = "125+11+110";
var userinputarray = userinput.match(/(\+|\-){0,1}[0-9.]{1,}/g);
var totalamount = 0;
$(userinputarray).each(function(key,value){
totalamount += parseFloat(value);
});
Parsefloat将删除+符号,同时仍然使用负号。
答案 3 :(得分:0)
var data = $('#inputfeildID').text();
var arr = data.split('+');
var total = 0;
for(i=0; i < arr.length ; i ++){
total += arr[i];
}
console.log( total );
当用户点击进入或提交时,首先获取输入字段中的值或文本&amp;然后从+中拆分它,然后添加数组元素。你将得到输入框的总值..
如果你想在用户输入时自动添加这些数字,你必须使用jQuery keyup function&amp;当用户按+时,然后将下一个数字添加到前一个
答案 4 :(得分:0)
您可以在文本框中放置一个keyup侦听器。然后在侦听器触发的代码中,如果&#34; myinput&#34;是输入字段的ID:
var exp = document.getElementById('myinput').value;
var result = eval(exp);
&#34;导致&#34;将是表达式的值。您还应该检查&#34; exp&#34;看到它是一个有效的条目,因为用户可以将任何类型的垃圾放入输入字段,也可能存在安全问题。