2011-07-25 27 views
6

我不能得到這個非常簡單的jsfiddle工作。它只是在按鈕被點擊時提醒測試。我在這裏錯過了什麼?jsfiddle問題

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

+0

很好的解釋,謝謝。 – Kory

+0

簡單的評論:不要綁定'click',你最好捕捉'submit'事件! –

回答

8

你必須改變負載方法沒有包(頭)。

它與JavaScript的加載方式以及讀取方法簽名的方式有關。 http://jsfiddle.net/u9nG6/11/

+1

具體而言:'onDomReady'封裝了函數,它只存在於該範圍內。 no wrap意味着該函數存在於全局範圍內。 –

0

您正在使用jquery + ondomready。這意味着,任何你寫的JavaScript被放置在

$(function() { 

}); 

這將導致一個範圍問題。您可以嘗試以下方法。

window.validateForm = function() { 
} 
2

jQuery框架選擇加載onDomReady所以你的功能被包裹在jQuery的匿名函數$(function(){ });和不可見。要麼改變jQuery加載爲no wrap (head)或在全局範圍定義你的函數。

2

請參閱here

您需要在全局範圍內定義validateForm函數,以便能夠像HTML那樣使用它。否則,您將其定義爲內的範圍內的onDomReady事件,該範圍在該範圍之外無法訪問。

更「jQuery的雜交」的方法是使用jQuery來處理click事件是這樣的:

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

這一建議的例子見here