No domino para nada el código JS y me encuentro con un problema en el que no he encontrado información para solucionarlo.
Es problema en cuestión es que dispongo de un formulario conversor de unidades, si pego todo el código en un archivo en blanco, funciona perfectamente devolviendo a cada input el valor correspondiente, ahora lo intento insertar en mi código, no devuelve los valores, es decir los input quedan vacíos, el formulario queda obsoleto.
Tras toda la mañana dando palos de ciego y pensando que se trataría de un conflicto entre Frameworks, me he dado cuenta que se trata de un pequeño buscador que tengo lineas antes, es decir que si quito el buscador, funciona perfectamente, si lo dejo, el conversor queda obsoleto. No tendría problema en quitar el buscador y colocarlo lineas más atrás dándole un
Código HTML:
position:absolute;
Por lo tanto me gustaría que me ayudaseis a encontrar el problema en el código js.
El código en cuestión es el siguiente:
Código HTML:
Ver original
<div class="conversor"> <script type="text/javascript"> function convertform(form){ var firstvalue = 0; for (var i = 1; i <= form.count; i++) { if (form.elements[i].value != null && form.elements[i].value.length != 0) { if (i == 1 && form.elements[2].value != "") return false; firstvalue = form.elements[i].value / form.elements[i].factor; break; } } if (firstvalue == 0) { clearform(form); return false; } for (var i = 1; i <= form.count; i++) form.elements[i].value = formatvalue((firstvalue * form.elements[i].factor), form.rsize); return true; } function converttempform(form){ var firstvalue = 0; if (form.elements[1].value != null && form.elements[1].value.length != 0) { form.elements[2].value = (Math.round((100/(212-32) * (form.elements[1].value - 32))*100))/100; return true; } if (form.elements[2].value != null && form.elements[2].value.length != 0) { form.elements[1].value = (Math.round(((212-32)/100 * form.elements[2].value + 32)*100))/100; return true; } } function formatvalue(input, rsize) { var invalid = "**************************"; var nines = "999999999999999999999999"; var strin = "" + input; var fltin = parseFloat(strin); if (strin.length <= rsize) return strin; if (strin.indexOf("e") != -1 || fltin > parseFloat(nines.substring(0,rsize)+".4")) return invalid.substring(0, rsize); var rounded = "" + (fltin + (fltin - parseFloat(strin.substring(0, rsize)))); return rounded.substring(0, rsize); } function resetform(form) { clearform(form); form.elements[1].value = 1; convertform(form); return true; } function resettempform(form) { cleartempform(form); form.elements[1].value = 212; converttempform(form); return true; } function clearform(form) { for (var i = 1; i <= form.count; i++) form.elements[i].value = ""; return true; } function cleartempform(form) { for (var i = 1; i <= form.count; i++) form.elements[i].value = ""; return true; } </script> <!-- Conversor de medidas de volumen --> <form name="volumen" id="volumen"> <input type="button" value="Calibrate" onclick="resetform(this.form)" style="DISPLAY: none"> </form> <script type="text/javascript"> document.forms[0].count = 6; document.forms[0].rsize = 5; document.forms[0].val1.factor = 0.2028841; // ml a tsp document.forms[0].val2.factor = 0.06762805; // ml a tbsp document.forms[0].val3.factor = 0.004226753; // ml a cups document.forms[0].val4.factor = 0.03381402; // ml a oz document.forms[0].val5.factor = 1; // ml a ml document.forms[0].val6.factor = 0.001; // ml a litros </script> <!-- Conversor de medidas de peso --> <form name="peso" id="peso"> <input type="button" value="Calibrate" onclick="resetform(this.form)" style="DISPLAY: none"> </form> <script type="text/javascript"> document.forms[1].count = 4; document.forms[1].rsize = 5; document.forms[1].val1.factor = 1; document.forms[1].val2.factor = .0625; document.forms[1].val3.factor = 28.349523; document.forms[1].val4.factor = .028349523; </script> <!-- Conversor de medidas de temperatura --> <form name="temperatura" id="temperatura"> <input type="button" value="Calibrate" onclick="resettempform(this.form)" style="DISPLAY: none"> </form> <script type="text/javascript"> document.forms[3].count = 2; document.forms[3].rsize = 5; </script> </div><!-- Fin .conversor -->
Muchísimas gracias como siempre por estar al otro lado ayudando y aconsejando!
Saludos! ;)