我有一個jQuery文件,其中包含函數。當我的頁面加載,然後我的腳本運行。意味着它被調用。這是我的jQuery文件。jQuery函數不是從JSF調用按鈕點擊
(function($){
var $firstPara = $('p').eq(1);
$firstPara.hide();
function checkValidation() {
var labelElementArray = $("label.mandotary");
var inputElementArray = $("input.mandotary");
var selectElementArray = $("select.mandotary");
$.each(inputElementArray, function(index, element){
var text = $(element).text();
}); //end of $.each(inputElementArray, fn)
$.each(selectElementArray, function(index, element) {
////nothing
}); //end of $.each(selectElementArray, fn)
} //end of function checkValidation()
})(jQuery); //end of (function($){}
我有JSF窗體中的按鈕。
<h:head>
<title>Facelet Title</title>
<h:outputScript library="javascripts" name="jquery.js" target="body"/>
<h:outputScript library="javascripts" name="validation.js" target="body"/>
</h:head>
<h:body>
<h:form id="validationFrom" >
<h:commandButton id="saveButton"
value="Save"
onclick="checkValidation()"/>
<h:commandButton id="cancelButton"
value="Cancel" />
</h:form >
</h:body>
現在,當我點擊保存按鈕,它說checkValidation()函數是未定義的。爲什麼? 我在這裏做錯了什麼?
感謝
由於添加在專頁
的。但有一點,如果我在'$(function(){})(jQuery);'之外定義我的checkValidation()函數''。然後它是我的onClick調用。看起來,JSF比jQuery具有更多的靈活性,對於javaScript ... – Basit 2012-02-08 11:13:53
是的,它將被稱爲onClick。函數通常應放在$(function(){...})之外。裏面的東西只有在DOM加載時纔會發生。這包括將事件掛鉤到DOM元素,這是我在.click()位做的事情。 – Carter 2012-02-08 17:46:24
HHmm其實我是新的,所以我認爲所有的jQuery代碼應該在'$(document).ready(fn)'裏面。你的意思是說如果我想在頁面加載的時候在頁面上隱藏一些段落,那麼這個代碼應該放在'$(document).ready(fn)'裏面。但是,如果我想傾聽點擊事件,那麼我可以把它放在我的'$(document).ready(fn)'之外。是嗎? – Basit 2012-02-09 04:56:13