0

私は JSF を学習しており、jQuery と統合したいと考えています。ただし、ページが自動的に更新されるため、正しく機能していません。私も試してみe.preventDefaultましe.stopPropagationたが、成功しませんでした。

jQueryコードは次のとおりです。

$(document).ready(function(){
    $("#form2\\:button1").click(function(){
        $("#form2\\:div1").toggle("slow",function(e){
            //e.preventDefault;
            //e.stopPropagation;
            return false;
        });
    });
});

ここにxHTML部分があります:

<h:form name="form1" id="form2">
    <h:outputLabel value="Enter Date"></h:outputLabel>
    <h:inputText value="#{test.date }"></h:inputText>
    <h:commandButton action="#{test.doWork}" value="Submit Form"></h:commandButton>
    <h:button id="button1" value="Action"></h:button>
    <h:panelGroup layout="block" id="div1">
        <h:commandLink id="link1"  value="Edit Details"></h:commandLink>
        <h:commandLink id="link2"  value="Manage mails" > </h:commandLink>
    </h:panelGroup>
</h:form>

にjQuery関数を適用しようとしています#button1

4

2 に答える 2

0

ドキュメントによると、<h:button>タグ

タイプ「ボタン」のHTML「入力」要素をレンダリングします。コンポーネントの値はボタン テキストとしてレンダリングされ、コンポーネントの結果は onclick によってアクティブ化されるターゲット URL を決定するために使用されます ... この結果 (結果) が null の場合、結果を現在の UIViewRoot の viewId にします

つまり、このタグは、属性で指定されたナビゲーション ケースの結果、または属性が指定されていない場合は現在のページへのinputJavaScript リダイレクト ( を指定することにより) を持つ要素を生成します。これで、ページが更新される理由が理解できたはずです。window.location.hrefoutcomeoutcome

リダイレクトが発生したくない場合は、次のようfalseにメソッドから戻ります。onclick

<h:button id="button1" value="Action" onclick="$('#form2\\:div1').toggle('slow');return false;"/>

同じことが jQuery コードにも当てはまります。

それ以外の場合は、単純な HTML<button>タグを使用して目的の効果を達成することを検討できます。

于 2013-07-22T12:28:25.753 に答える
0

更新: 私の間違いを指摘してくれてありがとう!

イベントの防止は、onclickコールバック内ではなく、コールバック内で発生する必要がありtoggleます。

これを試して。

$(document).ready(function(){
    $("#form2\\:button1").click(function(){ 

        $("#form2\\:div1").toggle("slow"); 

        //e.preventDefault;
        //e.stopPropagation;
        return false;
    });
});

ここにフィドルがあります: http://jsfiddle.net/PNcZS/1/

于 2013-07-22T13:13:55.320 に答える