Очистить ввод после вызова ajax - PullRequest
1 голос
/ 29 октября 2011

У меня есть следующий код jsf для ввода простых чисел, который заполняется сканером штрих-кода. После каждого сканирования мне нужно что-то делать в бине, очищать вход и перефокусироваться на нем для следующего сканирования. Пока что бин работает нормально, но ясности нет, и я еще не начал перефокусироваться. Есть идеи?

<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 голосов
/ 29 октября 2011

Вам нужно разместить немного больше информации - зайдите в источник и посмотрите на рендеринг.Вы увидите что-то (мое предположение), например:

  <input id="j_1231:testInput" />

В зависимости от настройки вам может понадобиться явно указать путь обновления к компоненту в этом случае (опять же, дикая догадка): formId: componentId или: subviewId: FormID: ComponentID.Если ваш путь отключен, это должно быть быстро исправлено.

- согласно комментарию Балуса

Если бин регистрирует действие, вы можете использовать обратный вызов Primefaces для запуска метода Javascript.http://www.primefaces.org/showcase/ui/callbackParams.jsf

...