Laravel /Laravel Collective Operaciones Mátematicas

publicado por: Anonymous

Busque ejemplos y no encontre nada, pero habria alguna manera de realizar operaciones matemáticas entre los datos obtenidos de los input?

Es decir:

Nº de Productos que compro:

<div class="form-group">
     {!! Form::label('cantidad', 'Cantidad') !!}
     {!! Form::text('cantidad', null, ['class' => 'form-control', 'placeholder' => 'Cantidad obtenida', 'required']) !!}
</div>

Por el precio:

<div class="form-group">
     {!! Form::label('total', 'Total de la Factura') !!}
     {!! Form::text('total', null, ['class' => 'form-control', 'placeholder' => 'Total' , 'required']) !!}
</div> 

Obtener el resultado en un tercer campo que es escriba solo:

<div class="form-group">
     {!! Form::label('precio_total', 'Precio Total') !!}
     {!! Form::text('precio_total', null, ['class' => 'form-control', 'placeholder' => 'Precio Total' , 'required']) !!}
</div>

solución

Suponiendo los ids para los elementos que si indican en el código y teniendo en cuenta que faltaria que hicieses validaciones de los datos de entrada en los listeners, el esqueleto del código que necesitas es el siguiente.

function multiplicar(op1, op2){
    //Suponiendo que el campo de texto donde quieres el resultado tiene el id "resultado"
    document.getElementById("resultado").setAttribute("value", op1 * op2);
}

//suponiendo el id para el input de la cantidad "cantidad"
document.getElementById("cantidad").addEventListener("change", function(){
    multiplicar(document.getElementById("cantidad").value, document.getElementById("precio").value);
});

//suponiendo el id para el input de la precio "precio"
document.getElementById("precio").addEventListener("change", function(){
    multiplicar(document.getElementById("cantidad").value, document.getElementById("precio").value);
});

El código debería ir añadido en un fragmento <script></script> de tu pagina web;

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *