[RESOLVIDO] Ao clicar ou focar um botão ele retornar o foco para imputtext

6 respostas
A

Seguinte galera tenho um dialog que tem o campo etiqueta.
Toda vez que eu escrever uma etiqueta e dar enter o foco vai para o comandbuton.
Eu queria que ao pressionar enter ele efetua a ação do botão e retorna o foco para meu imputtext "et"

<p:dialog id="dialog" widgetVar="Novaos" header="Cadastro Ordem de Serviço" modal="false" > 
                <h:form id="os">
                    <h:panelGrid columns="2">
                        <h:outputText value="Usina"/>
                        <h:selectOneMenu value="#{oSBean.us}">
                            
                            <f:selectItems value="#{usinaBean.usinamenu}"/>
                        </h:selectOneMenu>
                        <h:outputText value="Produtor"/>
                        <h:selectOneMenu value="#{oSBean.pd}">
                           <f:selectItems value="#{produtorBean.produtormenu}"/>
                        </h:selectOneMenu>
                        <h:outputText value="Romaneio"/>
                        <p:inputText value="#{oSBean.os.romaneio}" />
                        <h:outputText value="Fardo Inicial"/>
                        <p:inputText value="#{oSBean.os.fdinicial}" />
                        <h:outputText value="Fardo Final"/>
                        <p:inputText value="#{oSBean.os.fdfinal}" />
                        <h:outputText value="Fardos"/>
                        <p:inputText value="#{oSBean.os.fardos}" />
                        <h:outputText value="Data"/>
                        <p:inputText value="#{oSBean.os.data}" />
                        <h:outputText value="Etiquetas"/>
                        <p:inputText id="et" value="#{oSBean.classificacao.etiqueta}" />
                        
                    </h:panelGrid>
                    <h:panelGrid>
                      
                    </h:panelGrid>
                    <p:commandButton value="Salvar" actionListener="#{oSBean.inserir()}" update=":tabela"  />
                    
                </h:form>
            </p:dialog>

6 Respostas

K

cria o script

function focus(id) {
	document.getElementById(id).focus();
}

e no

<p:commandButton value="Salvar" actionListener="#{oSBean.inserir()}" update=":tabela" oncomplete="focus('os:et')" />
K

Ou então no seu managedbean
caso tenha ocorrido com sucesso vc faz

RequestContext.getCurrentInstance().execute("focus('os:et')")
A

com a primeira solução não deu certo.
Este

RequestContext.getCurrentInstance().execute("focus('os:et')")

coloco dentro do método inserir?

A
Consegui pena que no Internet Explorer não funciona mas no chrome funcionou
<script type="text/javascript">

	function EnterTab(InputId,Evento){

		if(Evento.keyCode == 13){		

			document.getElementById(InputId).focus();

		}

	}

</script>
e no botão
<p:commandButton value="Salvar" actionListener="#{oSBean.inserir()}" update=":tabela" onkeydown="javascript:EnterTab('et',event)" />

Não testei o seu codigo no chrome mas provavelmente deve funcionar também

K

eu uso isso, não tem como não funcionar. vc deve ter feito errado em algum ponto.

na primeira opção vc chama o focus da sua pagina mesmo,
na segunda vc chama do managedBean, dentro do método chamado pela página.

em ambas, vc tem que ter
adicionado na sua página
dentro das tags

isso

<script type="text/javascript">
	function focus(id) {
		document.getElementById(id).focus();
	}
</script>

e chamar dentre umas das formas que falei antes.

A

Sim funciona é que eu não tinha testado no chrome no meu IE não funciona nenhuma das duas maneiras

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