在ajax调用后清除输入

时间:2011-10-28 20:40:27

标签: jsf primefaces javabeans

我有以下用于primefaces输入的jsf代码,该代码由条形码扫描器填充。每次扫描后,我需要在bean中做一些事情,清除输入并重新聚焦在下一次扫描上。到目前为止,豆子工作正常,但明确不是,我还没有开始重新聚焦。任何想法?

<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"不起作用。我在这里错过了什么?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您需要发布更多信息 - 跳到源中并查看渲染。你会看到一些东西(我猜):

  <input id="j_1231:testInput" />

根据设置的不同,您可能需要在这种情况下明确地将更新路径发送到组件(再次,一个疯狂的猜测):formId:componentId或:subviewId:formId:componentId。如果您的路径已关闭,这应该是一个快速解决方案。

- 按照Balus的评论

如果bean正在注册一个动作,你可以使用Primefaces回调来激活Javascript方法。 http://www.primefaces.org/showcase/ui/callbackParams.jsf