Foros del Web » Programando para Internet » Javascript »

llamar funciones desde archivo .js

Estas en el tema de llamar funciones desde archivo .js en el foro de Javascript en Foros del Web. hola tengo el problema en html desde un formulario cuando ago la llamada de las funciones desde un archivo .js no me hace la llamada ...
  #1 (permalink)  
Antiguo 23/10/2014, 13:09
 
Fecha de Ingreso: octubre-2014
Mensajes: 1
Antigüedad: 9 años, 5 meses
Puntos: 0
llamar funciones desde archivo .js

hola tengo el problema en html desde un formulario cuando ago la llamada de las funciones desde un archivo .js no me hace la llamada de las funciones

<!DOCTYPE html>
<html>
<head>
<title>
Calculadora
</title> <meta charset="utf-8">
<script type="text/javascript" src="funcjs.js"></script>
</head>
<body onload="alert('Completada la carga de la página')">
<form>
ingresa el primer valor <input type="text/javascript" id="valor1", onkeypress="return numero(event)"><br>
ingresa el segundo numero <input type="text/javascript" id="valor2", onkeypress="return numero(event)"><br>
selecciona una opcion <br>
<input type="radio" name="opc" value="1"> Suma<br>
<input type="radio" name="opc" value="2"> Resta<br>
<input type="radio" name="opc" value="3"> Multiplicacion<br>
<input type="radio" name="opc" value="4"> Divicion<br>
<input type="text" id="resultado" value="0" disabled><br><br>
<input type="button" name="enviar" value="Enviar" onclick="ra(opc.value,valor1.value,valor2.value)">


</form>

</body>
</html>





y en mi archivo de js se encuentra de la siguiente manera



function ra(r,v1,v2){
console.log (r,v1,v2)
switch (r){

case '1':
suma(v1,v2)
break;

case '2':
resta(v1,v2)
break;

case '3':
multi(v1,v2)
break;

case '4':
divicion(v1,v2)
break;
}


}


function suma(valor1,valor2){

var valor = parseFloat(valor1) + parseFloat(valor2)
document.getElementById("resultado").value = valor;
}

function resta(valor1, valor2){
var valor= parseFloat(valor1) - parseFloat(valor2)
document.getElementById("resultado").value= valor;
}

function multi(valor1,valor2){
var valor= parseFloat(valor1) * parseFloat(valor2);
document.getElementById("resultado").value= valor;
}

function divicion(valor1, valor2){
if (valor2!=0){
var valor= parseFloat(valor1) / parseFloat(valor2)
document.getElementById("resultado").value = valor;
}
else{ alert("La divicion no se encuentra bien definida")}
}

function numero(e){
//var tecla = e.keyCode;
var vt = e.charCode || e.keyCode;
var codigo = String.fromCharCode(vt);
var numeros = "0123456789";
var punto = false
if (vt == 46){
punto = true;

}

if (numeros.indexOf(codigo)==-1 && !punto){
return false;
}

}
  #2 (permalink)  
Antiguo 23/10/2014, 13:23
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 9 meses
Puntos: 1012
Respuesta: llamar funciones desde archivo .js

no funciona por que
Cita:
document.getElementById("resultado")
no está definido. esto quiere decir que al momento de leer esas líneas el elemento #resultado no aún no existe

también corrige esto
Cita:
ngresa el primer valor <input type="text/javascript" id="valor1", onkeypress="return numero(event)"><br>
ingresa el segundo numero <input type="text/javascript" id="valor2", onkeypress="return numero(event)"><br>
ningún input es del tipo text/javascript. cámbialo por button
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #3 (permalink)  
Antiguo 23/10/2014, 16:19
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 8 meses
Puntos: 44
Respuesta: llamar funciones desde archivo .js

La llamada a tu archivo externo de js, tenés que hacerla luego de ingresar el HTML antes del cierre de la etiqueta <body>:

Código HTML:
<script type="text/javascript" src="funcjs.js"></script>
</body> 
Si querés incluirla en el head si o sí, entonces tenés que encerrar el código dentro de un window.onload para asegurarte de que los elementos carguen antes de que los llames.

Saludos.

Etiquetas: formulario, funcion, funciones, html, input, js, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:20.