2011-07-25 6 views
6

매우 간단한 jsfiddle을 사용할 수 없습니다. 버튼을 클릭했을 때 테스트를 경고하기로되어 있습니다. 내가 여기서 무엇을 놓치고 있니?jsfiddle question

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

+0

위대한 설명 모두 감사합니다. – Kory

+0

간단한 설명 : '클릭'을 바인드하는 대신 '제출'이벤트를 트래핑하는 것이 좋습니다! –

답변

8

당신은 어떤 랩 (머리)에 부하 방법을 변경해야합니다.

이것은 JavaScript가로드되는 방법과 메소드 서명을 읽을 때와 관련이 있습니다. http://jsfiddle.net/u9nG6/11/

+1

구체적으로 :'onDomReady'는 함수를 감싸며 그 범위 안에 만 존재합니다. 'no wrap'은 함수가 전역 범위에 있음을 의미합니다. –

0

jquery + ondomready를 사용 중입니다. 이것은 당신이 쓰는 자바 스크립트 어떤

$(function() { 

}); 

이 범위의 문제로 연결 내에 배치되는 것을 의미한다. 대신 다음을 시도 할 수 있습니다.

window.validateForm = function() { 
} 
2

의 jQuery 프레임 워크는 함수가 jQuery를 익명 함수 $(function(){ });에 싸여 보이지 않는입니다 그래서 onDomReady로드 선택된다. jQuery를로드하여 no wrap (head)으로 변경하거나 전역 범위에서 함수를 정의하십시오.

2

here을 참조하십시오.

validateForm 함수를 전역 범위에서 정의하여 HTML에서 사용할 수있게해야했습니다. 그렇지 않은 경우 범위 내에서 범위로 정의 된 onDomReady 이벤트의 범위는 해당 범위 외부에서 액세스 할 수 없습니다.

더 "jQuery를 틱"접근 방식은이 같은 click 이벤트를 처리 할 jQuery를 사용하는 것입니다 :

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

그 제안의 예를 들어 here를 참조하십시오.