我试图使用php带来一些记录并进行一些计算。我现在正在做的是,每行都有不同货币的下拉列表。当我选择每种货币时,它会计算并显示某些值。直到这里工作正常。
我想要实现的是,如果我选择第一个货币下拉列表,它应该计算完整的记录计算,而不是选择每行的货币。我想我需要在计算行的jquery中做一些循环。
以下是货币下拉列表的jquery脚本的一部分。
$(window).load(function() {
$(document).ready(function() {
$("select").on('change', function() {
var dept_number = $(this).val();
var price = $(this).find(':selected').data('price');
var selected = $(this).find('option:selected').text();
if (selected == "INR") {
$(this).closest('table').find('.total1').val($(this).closest('table').find('.total').val());
} else {
$(this).closest('table').find('.total1').val((($(this).closest('table').find('.total').val() * price) / $(this).closest('table').find('.inrvalue').val()).toFixed(3));
}
$(this).closest('table').find('.price_unit').val(($(this).closest('table').find('.total1').val() / $(this).closest('table').find('.qty').val()).toFixed(3));
});
});
});
我想我需要在这个jquery中添加一些循环。任何人都可以指导我如何做到这一点。或者我需要采取不同的步骤。
这是我根据Leonix的建议尝试过的。
$(document).ready(function(){
$(this).closest('table').find("select").each(function() {
var dept_number = $(this).val();
var price = $(this).find(':selected').data('price');
var selected = $(this).find("select");
if(selected=="INR")
{
$(this).closest('table').find('.total1').val($(this).closest('table').find('.total').val());
} else
{
$(this).closest('table').find('.total1').val((($(this).closest('table').find('.total').val() * price) / $(this).closest('table').find('.inrvalue').val()).toFixed(3));
}
$(this).closest('table').find('.price_unit').val(($(this).closest('table').find('.total1').val()/$(this).closest('table').find('.qty').val()).toFixed(3));
});
});
答案 0 :(得分:1)
在您的选择更改功能中,为表格的所有行执行各项操作并找到下拉列表:
$(this).closest('table').find("select").each(function() {
/* Each SELECT here, use $(this) */
})
或者,根据您的需要:
$(this).closest('table').find("select").each(function() {
/* Each TR here, use selectInput */
var selectInput = $(this).find("select");
})
使用select in hands,使用selectInput.val(changedSelectInput.val()) changedSelectInput是包含select更改者的jquery对象 使用嵌套的匿名函数时要注意,它们是在对象上下文中执行的,所以这个和$(this)会根据受函数影响的对象而改变。
建议:使用JS的特定css类作为select.select-currency而不是select,将这些类放在代码中。它可以防止这么多错误并节省你的时间。
注意:currency_change []不是有效的ID,如果你不需要设置一个,不要。
修改强>
部分代码:https://jsfiddle.net/btpxq5ow/6/
我做了什么?
请检查您的计算是否正确,因为我修改了它,请参阅calculateRowTotals() 还有一些必须修复的html / js错误。
您很少从stackoverflow获取代码