In my head it was all supposed to work...but ultimately this worked 
<script>
        function calculateSubtotal(input, index) {
            var price = parseFloat(input.value);
           * var quantity = 
parseInt(input.parentNode.nextElementSibling.innerHTML);*
            var subtotal = parseFloat(price * quantity);
            var subtotalElement = document.getElementById("subtotal" + 
index);
            if (price == 0) {
                // If price is 0, display the hidden span with text "Not 
Available" in red
                subtotalElement.innerHTML = "";
                var notAvailableSpan = 
input.parentNode.previousElementSibling.querySelector("span.hidden");
                notAvailableSpan.style.display = "inline";
                subtotalElement.innerHTML = subtotal.toFixed(2);

            } else {
                var notAvailableSpan = 
input.parentNode.previousElementSibling.querySelector("span.hidden");
notAvailableSpan.style.display = "none";
subtotalElement.innerHTML = subtotal.toFixed(2);
                updateGrandTotal()
}
}

On Tuesday, March 28, 2023 at 9:00:35 PM UTC+2 Leonel Câmara wrote:

> Looks like you're trying to mix javascript and python code in a quite 
> impossible way. Just pass qty instead of index to the function and use that 
> as the quantity.   
>
> A domingo, 26 de março de 2023 à(s) 15:04:29 UTC+1, mostwanted escreveu:
>
>> I want to be able to calculate subtotal by multiplying quantity and price 
>> but I cant because 
>>     *var quantity = parseInt("{{=details.quantities[index]}}");* in the 
>> code below carries the value of 1 and it does not change. Please assist me 
>> identify what could be wrong here and how can i rectify it?
>>
>> *Model:*
>> db.define_table('client_order'),
>>     Field('quoted_item','list:string', required=True),
>>     Field('quantities','list:string', required=True))
>>
>> *View:*
>>     {{for index, (item, qty) in enumerate(zip(details.quoted_item, 
>> details.quantities)):}}
>>         <tr>
>>             <td>{{=item}}</td>
>>             <td><input type="text" onchange="calculateSubtotal(this, 
>> {{=index}})" /></td>
>>             <td>{{=qty}}</td>
>>             <td><span id="subtotal{{=index}}"></span></td>
>>         </tr>
>>     {{pass}}
>>
>> <script>
>>     function calculateSubtotal(input, index) {
>>     var price = parseFloat(input.value);
>> *    var quantity = parseInt("{{=details.quantities[index]}}");*
>>     var subtotal = parseFloat(price * quantity);
>>     document.getElementById("subtotal" + index).innerHTML = 
>> subtotal.toFixed(2);
>>     updateGrandTotal();
>>         console.log(parseFloat("{{=details.quantities[index]}}"));
>> }
>> </script>
>>
>> Regards
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/f689c35f-a268-4e14-afb9-29d295f3cf76n%40googlegroups.com.

Reply via email to