.
Qué le añadió a mi código javascript para mostrar el total de cada columna, ya que el total lo debo mostrar con sus respectivos puntos decimales pero el 'Total' que me ofrece la pregunta no funciona con puntos decimales ni comas.
Code:
<script type="text/javascript" charset="utf-8">
$(document).on('ready pjax:scriptcomplete', function() {
var thisQuestion = $('#question{QID}');
// Asignar clases a las celdas de entrada y salida
$('.answer-item.answer_cell_SQ001', thisQuestion).addClass('input-value');
$('.answer-item.answer_cell_SQ002', thisQuestion).addClass('output-value');
// Hacer que las celdas de salida sean de solo lectura
$('.output-value input[type="text"]', thisQuestion).prop('readonly', true);
// Detectar cambios en tiempo real en las celdas de entrada
$('.input-value input[type="text"]', thisQuestion).on('input', function() {
handleCalculation($(this));
});
function handleCalculation(thisInput) {
var thisRow = $(thisInput).closest('tr.subquestion-list');
var rowIndex = thisRow.index() + 1;
var inputValue = parseFloat($(thisInput).val().replace(/\./g, '').replace(',', '.')) || 0; // Remover puntos y cambiar coma por punto para cálculos
var resultValue = 0;
// Determinar el multiplicador basado en el índice de la fila
switch (rowIndex) {
case 1:
resultValue = inputValue * 100000;
break;
case 2:
resultValue = inputValue * 50000;
break;
case 3:
resultValue = inputValue * 20000;
break;
case 4:
resultValue = inputValue * 10000;
break;
case 5:
resultValue = inputValue * 5000;
break;
case 6:
resultValue = inputValue * 1000;
break;
default:
resultValue = 0;
}
// Mostrar el resultado sin separadores de miles ni decimales
var formattedResult = resultValue.toFixed(0); // Redondear y convertir a entero
var outputValueCell = $('.answer_cell_SQ002', thisRow);
if (resultValue > 0) {
$('input:text', outputValueCell).val(formattedResult).trigger('change'); // Mostrar el número sin decimales
} else {
$('input:text', outputValueCell).val('').trigger('change');
}
// Calcular y mostrar el total acumulado de la columna 1
calculateAndDisplayColumnTotal();
}
function calculateAndDisplayColumnTotal() {
var totalColumn1 = 0;
// Iterar sobre todas las filas para sumar los resultados de la columna 1
$('.output-value input[type="text"]').each(function(index) {
if (index % 2 === 0) { // Columna 1: índices pares (0, 2, 4, ...)
var value = parseFloat($(this).val().replace(/\./g, '').replace(',', '.')); // Remover puntos y convertir a número
totalColumn1 += value;
}
});
// Mostrar el total acumulado de la columna 1 en la celda después del caso de 1.000
var totalColumn1Row = $('#answer{QID}Q1_SQ007'); // Reemplaza con el ID correcto de la fila para el total de columna 1
$('input:text', totalColumn1Row).val(totalColumn1.toFixed(0)).trigger('change'); // Mostrar el número sin decimales
}
});
</script>
Tambien, que el total diga total de billetes.