我有一个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