我正在更新收据的基础上用户输入旁边的窗体。数学和表单字段,获取NaN
我的问题是,我觉得我处理文本值,而不是整数,因为一些数学我做的生成NaN,而他们表现得很好单独用的console.log
我收集三个值,然后尝试将它们相乘以显示在收据中。这返回NaN。
至今代码:
$('fieldset').on('change', function(){
group = $(this).attr('title');
switch(group){
case "dr":
var name = $(this).find('option:selected').attr('label');
var value = $(this).find('option:selected').attr('value');
var weeks = $(this).find('option:selected').attr('data-weeks');
var copies = $(this).find('input').val();
//Only update the receipt when both are set (separate fields)
if(name != "" && copies != ""){
produkter.push([name, value*weeks*copies]);
receipt(produkter);
}
break;
[other cases...]
}
// Accepts an array with a name and a price sum.
function receipt(produkter){
produkter.sort();
$('.receipt li').remove(); // Clears the current receipt.
for (var i = 0; i < produkter.length; i++) {
$('.kvitto').append(
'<li><span class="item">' + produkter[i][0] + '</span><span class="price">' + produkter[i][1] + '</span></li>');
}
console.log(produkter);
}
<fieldset title="dr">
<label>DR format</label>
<select>
<option selected label="dr16" data-weeks="52" value="0,327">
DR 16 sides</option>
<option label="dr8" data-weeks="52" value="0,214">
DR 8 Tab</option>
<option label="drFF" data-weeks="52" value="0,352">
DR Full format</option>
</select>
<br><br>
<label>DR Copies</label>
<input type="text" label="dr-copies" />
</fieldset>
的+解决方案是不适合我的工作。尝试了'var total = + value * + weeks * + copies;'并且它用console.log输出NaN – Xavio
您是否也尝试为我的答案的第二部分提供变量的默认值? –
虽然发现了问题。正在使用,而不是。为小数。所以现在+解决方案正在工作。非常感谢! – Xavio