Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于另一个输入框更改输入值并乘以货币_Javascript_Jquery_Html - Fatal编程技术网

Javascript 基于另一个输入框更改输入值并乘以货币

Javascript 基于另一个输入框更改输入值并乘以货币,javascript,jquery,html,Javascript,Jquery,Html,我试图将一个输入框的值设置为另一个输入框的值乘以一个项目的价格。我将货币包装在带有类的span标记中。我需要将该值乘以.productTextInput输入文本框。该值将显示在.subTotal框中。我如何做到这一点 jQuery: $(".productTextInput").each(function() { $(this).change(function() { var priceAmount = $(this).parents().find(".priceAmou

我试图将一个输入框的值设置为另一个输入框的值乘以一个项目的价格。我将货币包装在带有类的span标记中。我需要将该值乘以
.productTextInput
输入文本框。该值将显示在
.subTotal
框中。我如何做到这一点

jQuery:

$(".productTextInput").each(function() {
    $(this).change(function() {
        var priceAmount = $(this).parents().find(".priceAmount").text();

        $(this).parents().find(".subTotal").val(parseInt($(this).val(), 10) * parseInt(priceAmount, 10));
    });
});
html:


美国(野生)李子
美洲李
裸根
2'-3'尺寸
$1.75

priceAmount
上使用
parseFloat
parseInt
返回一个整数(去掉小数)。parseFloat保留小数

在当前代码中,由于parseInt的原因,金额总是
1

改为:

$(this).parents().find(".subTotal").val(parseInt($(this).val(), 10) * parseFloat(priceAmount));

priceAmount
上使用
parseFloat
parseInt
返回一个整数(去掉小数)。parseFloat保留小数

在当前代码中,由于parseInt的原因,金额总是
1

改为:

$(this).parents().find(".subTotal").val(parseInt($(this).val(), 10) * parseFloat(priceAmount));

如果要使用小数来表示数字,则应使用
parseFloat
而不是
parseInt

此外,您还应删除正在调用的每个函数:

$(".productTextInput").each(function() {
   $(this).change(function() {
只需使用
单击
功能,
$(此)
将引用已单击的元素。您可以将代码简化为以下内容:

$(".productTextInput").change(function() {

     var priceAmount = parseFloat($(this).closest("tr").find(".priceAmount").text());

     $(this).closest("tr").find(".subTotal").val(parseInt($(this).val()) * priceAmount)  

});

如果要使用小数来表示数字,则应使用
parseFloat
而不是
parseInt

此外,您还应删除正在调用的每个函数:

$(".productTextInput").each(function() {
   $(this).change(function() {
只需使用
单击
功能,
$(此)
将引用已单击的元素。您可以将代码简化为以下内容:

$(".productTextInput").change(function() {

     var priceAmount = parseFloat($(this).closest("tr").find(".priceAmount").text());

     $(this).closest("tr").find(".subTotal").val(parseInt($(this).val()) * priceAmount)  

});

您不需要在此基础上使用
.each
,因为
$('.productTextInput')
会查找包含所提供类的每个元素

我确实在代码段中省略了parseInt/parseFloat,但JSFIDLE有它

$('.productTextInput').blur(函数(){
num=这个值;
price=$(this).closest('tr').find('priceAmount').text();
sub=数量*价格;
$('小计').val(分项固定(2));

});
您不需要使用
.each
,因为
$('.productTextInput')
会查找所提供类的每个元素

我确实在代码段中省略了parseInt/parseFloat,但JSFIDLE有它

$('.productTextInput').blur(函数(){
num=这个值;
price=$(this).closest('tr').find('priceAmount').text();
sub=数量*价格;
$('小计').val(分项固定(2));

});这不是您问题的完整答案,但您没有关闭输入标记。它应该是
@wahwah,如果你不这样做,它实际上不会影响任何东西。很好的建议,因为最好在语法方面保持一致,但是如果缺少HTML,则HTML将无错误地呈现。请参阅以更好地理解。@wahwah这是由于系统通过标记生成的输入。我没有包括标签,因为它没有意义。谢谢你的提醒。这不是你问题的完整答案,但是你没有关闭你的输入标签。它应该是
@wahwah,如果你不这样做,它实际上不会影响任何东西。很好的建议,因为最好在语法方面保持一致,但是如果缺少HTML,则HTML将无错误地呈现。请参阅以更好地理解。@wahwah这是由于系统通过标记生成的输入。我没有包括标签,因为它没有意义。谢谢你的提醒。如果OP正在建立一个网店,并且有多个产品输入呢
Each
为这些输入中的每一个都提供了一个更改处理程序。对,假设它们位于自己的表行中,就可以这样做。如果您正确地指定了目标,则不需要对每个
循环进行循环:我选择这个答案是因为它是正确的,而且我喜欢它的方法。谢谢如果OP正在建立一个网店,并且有多个产品输入,该怎么办
Each
为这些输入中的每一个都提供了一个更改处理程序。对,假设它们位于自己的表行中,就可以这样做。如果您正确地指定了目标,则不需要对每个循环进行循环:我选择这个答案是因为它是正确的,而且我喜欢它的方法。谢谢