2017-08-18 3 views
0

私はprimefacesアプリケーションで作業中です。jqueryはフォームの変更を追跡しません

最初にアイテムのリストが表示されます。ユーザーがアイテムを編集することができます。

私の場合は5つのタブがあり、最初のタブのリスト項目をユーザーがクリックする場合は、第四タブのコンテンツが表示されます、第五タブが表示されます2番目のタブのリスト項目をクリックします。

URLは、元のすべてのこれらのページ

のために同じになります:クロム を通じてデバッグ中localhost:8080/myapp/tabs.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      isInputChanged = false; 
      $("#tabview").on("change", ":input", function() { 
       isInputChanged = true; 
      }) 
     }); 
    </script> 
    <p:tabView id="tabview" activeIndex="#{myBean.tabIndex}" 
     style="min-height:750px;height:auto;border:0;padding:0" dynamic="true" styleClass="hidetabheader" > 

     <p:tab id="tabContents1"> 
      <ui:include src="/tabContents1.xhtml"></ui:include> 
     </p:tab>    
     <p:tab id="tabContents2"> 
      <ui:include src="/tabContents2.xhtml"></ui:include> 
     </p:tab> 
     <p:tab id="tabContents3"> 
      <ui:include src="/tabContents3.xhtml"></ui:include> 
     </p:tab> 
     <p:tab id="tabContents4"> 
      <ui:include src="/tabContents4.xhtml"></ui:include> 
     </p:tab> 
     <p:tab id="tabContents5"> 
      <ui:include src="/tabContents5.xhtml"></ui:include> 
     </p:tab> 
    </p:tabView> 
</ui:define> 

問題は、同じURL、第四で入力変化であります第五タブでは、私がisInputChangedになったことはありませんを意味し、追跡されません。 クロムデバッグツールでは、ソースが常に同じように表示されます。

しかし、私は第五タブコードを見ることができるソースで、 localhost:8080/myapp/tabs.xhtml?itemId = 100ようなURLにパラメータを追加する場合、変更入力がは、スクリプトによってなりますisInputChanged場合。

がどのように私はこのような状況に対処することができ、事前に感謝します!!!!!!!!!

+1

は、ページの下部にあるスクリプトコードを配置し、check.Alsoはあなたのスクリプトコードの前にjQueryライブラリを追加しましたか? –

+0

@ Alive to Die、はい私は試みたが動作していない:( –

答えて

0

は、私は次のコードは動作しますので、それはだと思うときはlocalhost:8080/myappに/ tabs.xhtmlロード。

$("#tabview").on("change", ":input", function() { 
    isInputChanged = true; 
}); 

これ以降のファイルはブラウザに含めておきますので、ブラウザは変更を見ることができません。コメントダイに

同様@Aliveは、ページの下部にあるスクリプトコードを配置し、チェックしてみてください。

関連する問題