我有一个带有函数的jQuery文件。当我的页面加载然后我的脚本运行。意味着它被调用。这是我的jQuery文件。
(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()函数未定义。为什么? 我在这里做错了什么?
由于
答案 0 :(得分:2)
尝试删除
(function($){
和
})(jQuery); //end of (function($){}
来自js文件
而是用这个地方包装你的js代码
$(document).ready(function() {
});
还有一件事
编辑:
将此添加到页面的头部
<h:outputScript library="primefaces" name="jquery/jquery.js"
target="head" />
<h:outputScript target="head">
$ = jQuery;
</h:outputScript>
为了在你的jQuery代码中使用$
答案 1 :(得分:1)
Welp,我不知道JSF是什么,除了我刚刚做的少量谷歌搜索,我也不熟悉你正在使用的一些jQuery语法。假设您可以像任何常规的旧html页面一样对抗JSF页面,这就是我将如何做...
$(function() {
// Do any work you want to occur when the DOM is ready here.
$("#saveButton").click(checkValidation);
}
function checkValidation() {
// Check validation here
}
然后摆脱JSF中的onclick位。