Javascript 基于另一个输入框更改输入值并乘以货币
我试图将一个输入框的值设置为另一个输入框的值乘以一个项目的价格。我将货币包装在带有类的span标记中。我需要将该值乘以Javascript 基于另一个输入框更改输入值并乘以货币,javascript,jquery,html,Javascript,Jquery,Html,我试图将一个输入框的值设置为另一个输入框的值乘以一个项目的价格。我将货币包装在带有类的span标记中。我需要将该值乘以.productTextInput输入文本框。该值将显示在.subTotal框中。我如何做到这一点 jQuery: $(".productTextInput").each(function() { $(this).change(function() { var priceAmount = $(this).parents().find(".priceAmou
.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
为这些输入中的每一个都提供了一个更改处理程序。对,假设它们位于自己的表行中,就可以这样做。如果您正确地指定了目标,则不需要对每个循环进行循环:我选择这个答案是因为它是正确的,而且我喜欢它的方法。谢谢