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()関数が定義されていません。どうして? 私はここで間違っていますか?
おかげ
おかげで$を使用するためにあなたのページ
の頭の中でこれを追加します。しかし、私がcheckValidation()関数を '$(function(){})(jQuery);の外で定義すると、その後、私のonClickで呼び出されます。 JSFはjQueryよりもJavaScriptの柔軟性が高いようです... – Basit
はい、それはonClickと呼ばれます。関数は、通常、$(function(){...})の外側に配置する必要があります。内部に入るのは、DOMがロードされたときにのみ実行したいものです。これは、私がそこで.click()ビットで行ったことであるDOM要素までのイベントのフックを含みます。 – Carter
HHmm実際には私は新しいので、すべてのjQueryコードは '$(document).ready(fn)'の内側にあるべきだと思っていました。あなたがページが読み込まれたときに私のページ上の段落を隠したいのですか?コードは '$(document).ready(fn)'の中になければなりません。しかし、私がクリックイベントを聞きたければ、私は '$(document).ready(fn)'の外に置くことができます。それは...ですか? – Basit