Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Ayuda en matriz

  • blacho
  • blacho's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
3 weeks 4 days ago - 3 weeks 4 days ago #265518 by blacho
Ayuda en matriz was created by blacho
Ayúdenos a ayudarle y llenar los siguientes campos: .
Su versión de LimeSurvey:  6.2.11
Servidor propio o LimeSurvey Cloud: propio
Plantilla de diseño utilizada: fruity
==================
Buenas tardes, solicita ayuda para esta matriz de textos
 
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.
Aquí mi código: 
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.
Last edit: 3 weeks 4 days ago by blacho.

Please Log in to join the conversation.

Lime-years ahead

Online-surveys for every purse and purpose