Javascript 为什么总和总是返回假值
我在表单中有一些输入值,如下所示:Javascript 为什么总和总是返回假值,javascript,jquery,Javascript,Jquery,我在表单中有一些输入值,如下所示: <tr> <td> <input type="text" disabled class="qty" value="1" name="quantity"> </td> <td> <span class="euro">€</span><input type="text" disabled class="price" value="0,60"&g
<tr>
<td>
<input type="text" disabled class="qty" value="1" name="quantity">
</td>
<td>
<span class="euro">€</span><input type="text" disabled class="price" value="0,60">
</td>
</tr>
<tr>
<td>
<input type="text" disabled class="qty" value="1" name="quantity">
</td>
<td>
<span class="euro">€</span><input type="text" disabled class="price" value="0,25">
</td>
</tr>
// below table row is empty because product is not on stock! //
<tr>
<td></td>
<td></td>
</tr>
//etc...
我已经尝试过的是:
var qty = parseInt($(this).find('.qty').val()) || 0;
var price = parseFloat($(this).find('.price').val()) || 0;
以及:
下面是console.log为原始代码返回的内容(第一个是价格,第二个是数量):
我不知道有什么新的方法可以解决这个问题 您需要使用
字符来启动浮点,而不是,
value=“0,60”
不会被视为数字<代码>值=“0.60”将被删除
% node
> "0.60" * 5
3
> "0,60" * 5
NaN
>
当运行parseFloat
时,它将点击,
,并停止将其余部分视为一个数字,因此您将得到0
> parseFloat("0.60") * 5
3
> parseFloat("0,60") * 5
0
你尝试的代码会得到什么回报?@Evan Knowles:总是NaN。无论我尝试什么,您的代码都会在我这边工作,使用
|124; 0
。也许你有缓存问题?@JaapVermoolen:还有log
调用parseInt
/parseFloat
永远不要返回未定义的
。你的确切意思是什么?@JaapVermoolen price应该是0.60
,而不是0,60
@JaapVermoolen-我在答案中添加了一个示例。0,60
将被视为一个数字,但是数字将是0
,因为它在点击,
@Barmar时停止解析-如果它是JavaScript代码,那么,
将被视为逗号运算符(因此它本身不会停止解析),但它不是JavaScript。它是从DOM中拉出的字符串。
0,60 1
0,90 1
undefined undefined
0,14 1
0,12 1
0,75 1
% node
> "0.60" * 5
3
> "0,60" * 5
NaN
>
> parseFloat("0.60") * 5
3
> parseFloat("0,60") * 5
0