Pregunta

Esta pregunta ya tiene una respuesta aquí:

No puedo hacer que este jsfiddle extremadamente simple funcione. Se supone que se alerta a la prueba cuando se hace clic en el botón. ¿Que me estoy perdiendo aqui?

http://jsfiddle.net/u9ng6/2/

¿Fue útil?

Solución

Tienes que cambiar el método de carga a no envoltura (cabeza).

Tiene algo que ver con cómo se carga el JavaScript y cuándo se lee la firma del método. http://jsfiddle.net/u9ng6/11/

Otros consejos

JQuery Framework se selecciona para cargar onDomReady para que su función esté envuelta en la función anónima jQuery $(function(){ }); y no es visible. Cambie jQuery para cargar como no wrap (head) o defina su función en el alcance global.

Ver aquí.

Necesitabas definir tu validateForm Funciona en el alcance global para poder usarlo en el HTML como ese. De lo contrario, lo tenía definido como una función dentro de el alcance del onDomReady evento, que es inaccesible fuera de ese alcance.

Un enfoque más "jQuery-ish" sería usar jQuery para manejar el click evento como este:

$("#id_btnSubmit").click(validateForm);

Ver aquí Para un ejemplo de esa sugerencia.

Estás usando jQuery + onDomready. Esto significa que cualquier JavaScript que escriba se coloca en

$(function() {

y

});

Esto lleva a un problema de alcance. Puede probar lo siguiente en su lugar.

window.validateForm = function() {
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top