2014-02-12 5 views
4

У меня есть форма внутри модального диалога и после закрытия (скрывается на самом деле) я хотел сбросить все входы, которые пользователь мог изменить. Я, однако, о чем-то вроде:Приоритет атрибута формы в вводах формы реестров

<p:dialog widgetVar="myDialog"> 
    <h:form id="formId"> 
     <!-- ... --> 
     <p:commandButton value="Cancel" onclick="myDialog.hide();" 
      update="formId"> 
      <p:resetInput target="formId" /> 
     </p:commandButton> 
    </h:form> 
</p:dialog> 

Но результат был не таким, как я ожидал. Через некоторое время поиска я нашел решение, которое должно было добавить атрибут process="@this" к <p:commandButton>. И мой вопрос, почему это необходимо? Что действительно происходит в backgroud, что этот процесс желателен. Я вообще не понимаю идею атрибута процесса.

ответ

-1

Если вы не добавили process = "@ this", то по умолчанию значение атрибута будет установлено как process = "@ form", что означает, что все элементы формы обрабатываются. В командных кнопках process = "@ this" является обязательным для выполнения соответствующих действий, связанных с этой кнопкой.

Вы можете напрямую передать ответ от Balusc в этой ссылке
What is the function of @this exactly?

+0

Этот ответ неверен 2 способами. Значение по умолчанию - это не то значение, и неправильное значение не «не запускает никакой запрос». – BalusC

+0

После просмотра ваших комментариев я провел некоторое исследование, чтобы очистить свои неправильные представления, и, к счастью, я получил ответ от вас только в stackoverflow http://stackoverflow.com/questions/5699088/what-is-the-function-of-this-exactly. Мой предыдущий ответ был моим пониманием, которое абсолютно неверно. Большое спасибо за ваш ответ. –

3

Я сделал некоторую работу с диалоговыми окнами и, как я сделал, чтобы сделать форму Нулевым, при нажатии кнопки диалогового окна, чтобы открыть , Я запустил метод в бэкбоне, который очистил мое pojo, чтобы моя форма имела пустые значения.

В вашем случае это может быть что-то вроде этого:

<h:form id="form-button"> 
    <p:commandButton id="AddButton" value="open dialog box" 
     update=":form" action="#{myBean.myMethodToSetPojoNull}" immediate="true" 
     oncomplete="PF('myDialog').show()" /> 
</h:form> 

При нажатии на эту кнопку, вызываемый метод будет установлен в нуль все поля и ваше диалоговое окно будет пустым. Возвращаясь к вашему вопросу о том, почему [email protected] является необходимому гораздо лучше объяснить ответ здесь

What is the function of @this exactly?

+0

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

0

Вы можете также вход сброса после подачи с помощью этого метода:

<p:commandButton value="Reset Non-Ajax" 
    actionListener="#{pprBean.reset}" immediate="true" ajax="false"> 
    <p:resetInput target="panel" /> 
</p:commandButton> 
Смежные вопросы