1

コンポーネントの値を 10 キーアップごとに更新したいので、次のコードを書きました。

<h:body>
   //***************************JAVAScript function**************
<SCRIPT LANGUAGE="JavaScript">
 function fnc(){
                length=document.getElementById("aa").value.length;
                 if(length == 10)
                                {
                        document.getElementById("aa").value ="";

                                }

                }

<ui:composition template="commonLayout.xhtml">

    <ui:define name="content">
        <section id="main" class="column">
        <h4 class="alert_info">Scannez les bonbonnes puis cliquez sur
            enregistrer :</h4>
        <div class="Saut20px">

            <h:form id="form">
                <p:panel id="panel" header="Register">

                    <br />
                    <p:focus context="panel" />
                    <p:growl id="msgs"></p:growl>


                    <h:outputLabel value="Code Barre :" />

  //*****************call function in onComplete******
   <p:inputText id="aa" value="#{bonBonneManagedBean.sel}">
                        <p:ajax event="keyup" update="koko msgs" oncomplete="fnc()"
                            listener="#{bonBonneManagedBean.ajouterSelected(bonBonneManagedBean.sel)}" />
                    </p:inputText>

しかし、電話が機能しません。エラーを見つけるのを手伝ってくれるなら、事前に感謝します

4

2 に答える 2

0

ここで問題はほとんどありません。最初にあなたのコメント、それらはおそらくコードではなく、この質問に存在するだけなので、それらについては話しません。

BalusCが書いたように、スクリプト タグを定義する奇妙な形式を使用しています。そのようなものを見たことがないことを認めなければなりません。一方、section私が知っているように、タグは HTML5 タグを使用しており、HTML5 をサポートしていないブラウザーでは機能しないことに注意してください。

入力フィールドのすべてのイベントで呼び出される AJAX イベントを作成しましたkeyup...まあ、それはここで多くの要求になるでしょう。それを避けることをお勧めします。

あなたの具体的な問題は、id aaの要素を見つけようとすることですが、そのような要素はないと言わざるを得ません。form:aaJSF はネーミング コンテナーから ID を連結するため、周囲のページにネーミング コンテナーがさらにある場合は、入力にこのような id が含まれます。ページの生成された HTML コードを検査し、入力コンポーネントの実際の ID を確認できます。他のケースでは、次のようなことができます:

<p:inputText id="aa" onkeyup="fnc(this)" value="#{bonBonneManagedBean.sel}"/>

このソリューションでは、ajaxタグを削除します。

あなたを次のように変更しますfnc

function fnc(inputComponent)
{
  length = inputComponent.value.length;
  if(length == 10)
  {
    inputComponent.value = "";
  }
 }

最後に、あなたは JSF と JavaScript で遊んでいると思いますが、これの有用性はまったくわかりません。

于 2013-02-05T21:02:19.100 に答える
0

inputtext コンポーネントの onkeyup 属性を使用してみてください。

 <p:inputText id="aa" onkeyup="fnc()" value="#{bonBonneManagedBean.sel}">

幸運を!

于 2013-02-05T15:24:17.793 に答える