Tengo varios formularios en mi página con la misma entrada. Me gustaría multiplicar algún valor de las entradas. Ahora mi código funciona solo para entradas de primer formulario.
$("#quantity").each(function () { var $final_price = $('#final_price'); $("#quantity").on('keyup', function (e) { var quantity = parseFloat($(this).val()); var product_price = parseFloat($("input[name='product_price']").val(), 10); $final_price.val(quantity * product_price); }); });EDITAR, código de trabajo:
$(".ilosc").on('keyup', function (e) { var quantity = parseFloat($(this).val()); var product_price = parseFloat($("input[name='product_price']").val(), 2); var final_price_input= $(this).closest("form").find(".final-price-rental-value"); var final_price_value = (quantity * product_price).toFixed(2); var final_price_input_value = final_price_input.val(final_price_value); });Su HTML debe ser
<input type="number" name="quantity" class="quantity" required="required">Su Javascript debe ser
$(".quantity").on('keyup', function (e) { var quantity = parseFloat($(this).val()); var product_price = parseFloat($("input[name='product_price']").val(), 10); $final_price.val(quantity * product_price); });Su código solo funciona en el primer formulario porque está apuntando a una identificación, es decir, #quantity , y solo puede tener una identificación por página .
Lo que tienes que hacer es usar clases, por ejemplo:
$('.quantity').each(function(index, value) { var $input = $(value); console.log($input.val()); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form> <input type="text" class="quantity" value="232" /> </form> <form> <input type="text" class="quantity" value="765" /> </form> <form> <input type="text" class="quantity" value="987" /> </form>