3

私は問題があります。一部の操作を簡素化するために、jsf および primefaces アプリケーションで jquery を使用しています。Jquery はオンロード ページで正常に動作しますが、一部のコンポーネントを更新すると jquery が動作しません。例えば:

<h:form>

<p:selectOneMenu value="#{contractBean.workType}" >
<f:selectItem itemLabel="" itemValue="" />
<f:selectItem itemLabel="product" itemValue="1"   />
<f:selectItem itemLabel="service" itemValue="2"   />
<f:selectItem itemLabel="product and service" itemValue="3" />
<p:ajax update="outPan" event="change" /> 
</p:selectOneMenu>

<p:outputPanel id="outPan">
<p:inpuText value="#{contractBean.workType}" id="wType"/>
<p:commandButton value="Submit" id="sButton"/>
</p:outputPanel>

</h:form>



<script type="text/javascript">
$(document).ready(function(){

$('#sButton').prop('disabled',true);
$('#wType').css({'border':'red'})

})
</script>

あなたの解決策を手伝ってください。ありがとうございました。

4

3 に答える 3

11

jsコードを に配置functiononcompletep:ajax

このような

<p:ajax update="outPan" event="change" oncomplete="myFunc()" /> 

js コード:

<script type="text/javascript">
$(document).ready(function(){
    myFunc();
});
function myFunc() {
    $('#sButton').prop('disabled',true);
    $('#wType').css({'border':'red'})
}
</script>

説明:

primefaces ajaxの後にreadyイベントがありません(結局のところ、それはajaxであり、ページ全体のリロードではありません)

の後にいくつかのjsコードをフックしたい場合はp:ajax、そのonsuccess属性を使用できます

于 2013-06-26T07:56:47.383 に答える
1

使用しているスクリプトを修正してください。id による要素の選択は次のようになります: $('#' + elemId)

<script type="text/javascript">
$(document).ready(function(){

$('#sButton').prop('disabled',true);
$('#wType').css({'border':'red'})

})
</script>
于 2013-06-26T07:43:38.683 に答える
0

ページがレンダリングされたときに、ボタンの ID がsButtonになるとは思えません。
通常、Jsf では、コンポーネントの Id はformID:componentIdになります。
あなたの場合、フォームの ID がないため、JSF はjdt_k159のような動的コンポーネント ID を生成するため、ボタン ID はjdt_k159:sButtonになります。
また、JQuery での安全 のために$('id=["xxx:yyy"]')を使用します。

次のように FORM に ID を指定します。

<h:form id="myForm">
  ...
  ...
  <p:commandButton value="Submit" id="sButton"/>
</h:form>

<script type="text/javascript">
    $(document).ready(function(){

    $('[id="myForm:sButton"]').prop('disabled',true);
    ...
    ...
  })
</script>

参照リンク:
JSF で ID でコンポーネントを検索
する jquery で JSF コンポーネント ID を参照するにはどうすればよいですか?

于 2013-06-26T08:05:02.253 に答える