Limpando o formulario com ajax sem submit

6 respostas
Matheus_Paiva
Pessoal estou com uma duvida ... Gostaria de saber como fazer para limpar o formulario de uma pagina sem submeter a mesma .. Mexo na tela e ficam alguns nomes vou para outra parte do sistema e quando volto está da mesma forma que deixei não fica limpo(todos os campos em branco) Gostaria de saber como faço para limpar tudo ? Estou utilizando o jsf1.2 e richfaces .... Desde já agradeço ...
<body>
            <h:form id="formulario">
                <div id="wrapper">
                    <div id="topo"><a href="index.jsp">Sair</a></div>
                    <div id="conteudo_principal">
                        <h2>Marcação de perícia</h2>

                        <br/>
                        <rich:panel style="width:600px" >
                        <h:panelGroup id="painel">
                        <table>
                            <h:inputHidden value="#{tabAgendadosPeritosMB.tap.idAgendadosPeritos}" id="id_agendados_peritos"/>
                            <tr>
                                <td>
                                    Tipo Perícia:  
                                </td>
                                <td>
                                    <h:selectOneMenu id="tipo_pericia" value="#{tabAgendadosPeritosMB.tipoPericia}">
                                        <f:selectItem itemLabel="" itemValue="" />
                                        <f:selectItem itemLabel="EXTERNA" itemValue="E" />
                                        <f:selectItem itemLabel="INTERNA" itemValue="I" />
                                        <a4j:support event="onchange" reRender="painel" action="#{tabAgendadosPeritosMB.carregaPeritos()}"/>

                                    </h:selectOneMenu>
                                </td>

                            </tr>
                            <tr>
                                <td>
                                    Número do processo: 
                                </td>
                                <td>
                                    <h:inputText  value="#{tabAgendadosPeritosMB.tap.nuProcesso}" style="width:200px;" id="numero_processo" maxlength="25" onkeypress="return SomenteNumero(event)" />*
                                       
                                </td>
                            </tr>

                            <tr>
                                <td>
                                    Área do perito:
                                </td>
                                <td>
                                    <h:selectOneMenu id="area_perito" value="#{tabAgendadosPeritosMB.tap.areaPerito.codArea}">
                                        <f:selectItems value="#{tabAgendadosPeritosMB.areasPeritos}" />
                                        <a4j:support event="onchange" reRender="painel" action="#{tabAgendadosPeritosMB.carregaPeritos()}"/> 
                                    </h:selectOneMenu>
                                </td>

                            </tr>

                            <tr>
                                <td>
                                    Perito:  
                                </td>
                                <td>
                                    <h:selectOneMenu id="nome_perito" value="#{tabAgendadosPeritosMB.tap.nome}">
                                        <f:selectItems value="#{tabAgendadosPeritosMB.nomesPeritos}" />
                                        <a4j:support event="onchange" reRender="painel" action="#{tabAgendadosPeritosMB.agendaPerito()}"/>

                                    </h:selectOneMenu>
                                </td>

                            </tr>

                            <tr>
                                <td>
                                    Data: 
                                </td>
                                <td>
                                    
                                    <h:inputText value="#{tabAgendadosPeritosMB.tap.dataAgenda}" style="width:80px;" id="data" onkeyup="mascara_data(this)" onkeypress="return SomenteNumero(event)" maxlength="10">
                                    <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy"/>
                                    </h:inputText>
                                </td>
                            </tr>                                
                            <tr>
                                <td>
                                    Hora: 
                                </td>
                                <td>
                                    <h:inputText value="#{tabAgendadosPeritosMB.tap.horaAgenda}" style="width:40px;" id="hora" maxlength="5"/>
                                </td>
                            </tr>      
                        </table>

                        <p><h:messages infoClass="statusOk" errorClass="statusErr" layout="table" showDetail="true" showSummary="false"/></p>
                        </h:panelGroup>
                        </rich:panel>
                        <p>
                            <h:commandButton onclick="" type="submit" value="Gravar" label="Gravar" action="#{tabAgendadosPeritosMB.cadastrar}" image="images/bt_salvar.png" />&nbsp; 
                            
                      </p>
                    </div>
                    <div id="nav">
                        <jsp:include page="menu.jsp"/>
                    </div>
                    <div id="rodape"><p class="copyright">Justiça Federal da Bahia, NUTEC</p></div>
                </div>
            </h:form>

            <script type="text/javascript">
         
            </script>
        </body>

6 Respostas

surfzera

Provavelmente você está arnazenando seu objeto (tabAgendadosPeritosMB) na session. Tentei trocar para request no facesconfig. Ou você terá que mandar limpar sempre ao efetuar a ação.

Matheus_Paiva

surfzera:
Provavelmente você está arnazenando seu objeto (tabAgendadosPeritosMB) na session. Tentei trocar para request no facesconfig. Ou você terá que mandar limpar sempre ao efetuar a ação.


Mudando para request dá o seguinte erro :
10/01/2013 16:13:19 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/siapJava] threw exception [null] with root cause
java.util.NoSuchElementException

Se eu não mudar para request como devo fazer para que ele zere o a tela ?

surfzera

Antes de entrar na tela você pode efetuar um acao com ajax para zerar o objeto.

digamos :

Voce tem uma menu : Editar nesse botão você coloca uma funcao onclick para zerar o objeto, e depois você chama a tela no action.

surfzera

vi ali que voce está usando o a4j:support você pode usar ele no menu pra fazer isso que falei. Crie uma metodo que zera esse objeto pra você;

Matheus_Paiva

Entendi o que me disse mas gostaria de saber como fazer isso em ajax pois sou mais que iniciante nesse segmento …

Matheus_Paiva

To tentando fazer um validador para resetar o form …

Criado 10 de janeiro de 2013
Ultima resposta 10 de jan. de 2013
Respostas 6
Participantes 2