2011-07-25 19 views
6

Nie mogę uzyskać tego niezwykle prostego jsfiddle do pracy. Ma po prostu ostrzec test po kliknięciu przycisku. Czego tu mi brakuje?jsfiddle pytanie

http://jsfiddle.net/u9nG6/2/

+0

Wielkie wyjaśnienia, dziękuję. – Kory

+0

Prosta uwaga: zamiast wiązania "kliknij", lepiej pułapkę zdarzenia "wyślij"! –

Odpowiedz

8

trzeba zmienić metodę ładowania do oblewania (bez głowy).

Ma to związek z ładowaniem JavaScript i odczytem sygnatury metody. http://jsfiddle.net/u9nG6/11/

+1

Aby być konkretnym: 'onDomReady' zawija funkcję i istnieje tylko w tym zakresie. "Brak zawijania" oznacza, że ​​funkcja istnieje w zasięgu globalnym. –

0

Używasz jquery + ondomready. Oznacza to, że każdy javascript piszesz jest umieszczony w

$(function() { 

i

}); 

prowadzi to do problemu zasięgu. Zamiast tego możesz wypróbować następujące elementy.

window.validateForm = function() { 
} 
2

jQuery framework wybrano załadować onDomReady więc funkcja jest owinięty w jQuery anonimowej funkcji $(function(){ }); i nie jest widoczny. Zmień jQuery na ładowanie jako no wrap (head) lub określ swoją funkcję w zasięgu globalnym.

2

Zobacz here.

Musisz zdefiniować swoją funkcję validateForm w zasięgu globalnym, aby móc jej używać w takim kodzie HTML. W przeciwnym razie zdefiniowano go jako funkcję w zakresie zasięgu zdarzenia onDomReady, które jest niedostępne poza tym zasięgiem.

więcej Podejście „jQuery-owski” byłoby użyć jQuery obsłużyć zdarzenia click tak:

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

Zobacz here na przykład tej sugestii.