2011-10-28 14 views
1

バーコードスキャナによって入力されているprimefaces入力には、次のjsfコードがあります。各スキャンの後、私は豆の中で何かをする必要があります。入力をクリアし、次のスキャンのためにそれに焦点を合わせます。これまでのところ、Beanはうまく動作しますが、明確ではなく、まだ再フォーカスを開始していません。何か案は?ajax呼び出しの後に入力をクリアする

<p:inputText id="testInput" value="#{barcodeHelper.barcodeData}" onkeyup="if (event.keyCode == 13){onchange(); return false;}"> 
       <p:ajax listener="#{barcodeHelper.barListener()}" update="testInput" process="@this" event="change"/> 
      </p:inputText> 

とリスナーこの

public void barListener(){ 

    if(barcodeData.length() == 13){ 
     ean = barcodeData; 
     //Will do more 
    } 
    //other bar code Lengths will be dealt with maybe a switch is better 
    //clear the data just read 
    barcodeData = null; 
} 

私はリスナーの罰金に着くんが、残念ながらupdate="testInput"は動作しません。私はここで何が欠けていますか?ご協力いただきありがとうございます。

+0

ajaxレスポンスボディとは何ですか?それを見るにはFirebug/Chromeを使用してください。 – BalusC

+0

私は前にそれを使用したことのないように、私の頭をFirebugの周りに乗ろうとしています。私はそれを使って多くの有用なデータを見てきましたが、応答関数を見ることはできますが、応答が何であるかを見ることができないようです。私は私のJava Beanで応答を設定する必要がありますか? – user845854

+0

ファイアバグ..うわー、天才の仕事。私は応答が空であることを発見しました。これは問題ですか? – user845854

答えて

0

ソースに少し詳しく情報ホップを投稿して、レンダリングを確認する必要があります。フォームID:COMPONENTIDか:subviewId設定によっては、あなたが、この場合のコンポーネント(再び、野生の推測)へのパス、あなたの更新を明示的にする必要があり

<input id="j_1231:testInput" /> 

:あなたのような何か(私の推測)を参照してくださいよ:formId:componentId。あなたのパスがオフの場合、これはすばやく修正する必要があります。 Balusさんのコメント

--per

豆を使用して、JavaScriptのメソッドを発射するPrimefacesコールバックを使用することができますアクションを登録している場合。 http://www.primefaces.org/showcase/ui/callbackParams.jsf

+0

''は ''と同じ命名コンテナの中にあるので、問題ではありません。 – BalusC

+0

私はダニアルの両方のアプローチを試みましたが、無駄です。上記のBalusCの答えを考えてみると、応答の状態のためにアップデートが呼び出されていないと思います。しかし、私がjavascriptを呼び出すためにoncompleteを使用しようとしたとき、私は関数に到達していましたが、document.getElementById( "myform:testInput).value =" "豆の値が大統領を務めていたと仮定したそれはすべて非常に混乱しています。 – user845854

関連する問題