cuando trato de agregar un valor específico con value="444" en la entrada usd, no se convierte al otro valor eth , solo funciona cuando ingreso manualmente la cantidad. ¿Cómo puedo convertir cuando su valor ya está especificado en el código?
<!DOCTYPE html> <html> <head> <style> </style> <script src="/scripts/snippet-javascript-console.min.js?v=1"></script> </head> <body> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="number" name="eth" class="currencyField" placeholder="ETH"> <div class="arrow" style="margin: 0 10px";>=</div> <input type="number" name="usd" value="444" class="currencyField" value="" placeholder="USD"> </div><span id="price"></span> <script type="text/javascript"> $(".currencyField").keyup(function(){ //input[name='calc'] let convFrom; if($(this).prop("name") == "eth") { convFrom = "eth"; convTo = "usd"; } else { convFrom = "usd"; convTo = "eth"; } $.getJSON( "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=ethereum", function( data) { var origAmount = parseFloat($("input[name='" + convFrom + "']").val()); var exchangeRate = parseInt(data[0].current_price); let amount; if(convFrom == "eth") amount = parseFloat(origAmount * exchangeRate); else amount = parseFloat(origAmount/ exchangeRate); $("input[name='" + convTo + "']").val(amount.toFixed(2)); price.innerHTML = amount }); }); </script> </body> </html>Prueba esto
<script type="text/javascript"> $(document).ready(function () { function getJSONData() { if ($(this).prop("name") == "eth") { convFrom = "eth"; convTo = "usd"; } else { convFrom = "usd"; convTo = "eth"; } $.getJSON("https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=ethereum", function (data) { var origAmount = parseFloat($("input[name='" + convFrom + "']").val()); var exchangeRate = parseInt(data[0].current_price); let amount; if (convFrom == "eth") amount = parseFloat(origAmount * exchangeRate); else amount = parseFloat(origAmount / exchangeRate); $("input[name='" + convTo + "']").val(amount.toFixed(2)); price.innerHTML = amount; }); } getJSONData(); $(".currencyField").keyup(function () { //input[name='calc'] getJSONData(); }); }); </script> En primer lugar, debe cambiar la función fuera de keyup , porque no lo hacemos. La función funciona cuando ingresa el valor.