[ERRO] apertar enter redireciona para outra pagina

Java

11/08/2011

Olá galera,
tenho minhas paginas de pesquisa, ao preencher um parâmetro de pesquisa e apertar no botão pesquisar ele faz pesquisa direitinho, mas se eu apertar enter, ele vai pra inserir um novo...
o que pode ser?
CÓDIGOS JAVA SCRIPT
function verificaTecla(event, idBtn) {	//alert(navigator.appName);	//alert('tipo = =' + event.srcElement.nodeName + "=");	var src ;	if(event.srcElement){ //IE		src = event.srcElement.nodeName.toLowerCase();	} else {  //FF e outros		src = event.target.type;	}			if (src != 'textarea' && src != 'select-one' && src != 'select' && event.keyCode == 13 ) {		jQuery('input[id$=' + idBtn + ']')[0].click();		alert("Teste 2");		return false;	}
	return true;}
<h:form id="formVI"		onkeypress="			try {				return verificaTecla(event, 'btnSalvar');			} catch (e) {				try {					alert('salvar');					return verificaTecla(event, 'btnPesquisar');				} catch (e) {					alert('pesquisar');					return true;				}			}">




CÓDIGO DOS BOTÕES
<ui:define name="botoes">		<a4j:jsFunction name="pesquisar"			actionListener="#{mBeanPesquisarCidade.doPesquisar}"			reRender="dtbScroller, tbCidades, msgs" />		<ui:include src="/pages/geral/template/paginas/botaoPesquisar.xhtml">			<ui:param name="action" value="pesquisar()" />			<ui:param name="roles" value="VISUALIZAR_CIDADE,CADASTRAR_CIDADE" />			<ui:param name="rerender" value="tbCidades" />			<ui:param name="mBeanPesquisa" value="mBeanPesquisarCidade" />		</ui:include>
		<ui:include src="/pages/geral/template/paginas/botaoHtmlNovo.xhtml">			<ui:param name="idBotao" value="btnNovo" />			<ui:param name="label" value="#{msgSistema.btnNovo}" />			<ui:param name="roles" value="CADASTRAR_CIDADE" />		</ui:include>		<h:commandButton style="display:none;" value="#{msgSistema.btnNovo}"			id="btnNovo" action="#{mBeanManterCidade.novaCidade}"			styleClass="botaoNovo" /><ui:define/>

DEEM UMA AJUDA AI
Wisley Souza

Wisley Souza

Curtidas 0

Respostas

Wisley Souza

Wisley Souza

11/08/2011

nada???? 

puts em...
GOSTEI 0
Davi Costa

Davi Costa

11/08/2011

Usa essa função js para pressionar enter chamar a ação do seu botão:

function doSomething(e) {
                        if(e.keyCode == 13) {
                            var botao = document.getElementById('btConsultar');
                            botao.click();
                            return false;
                        }
                    }


att Davi
GOSTEI 0
Wisley Souza

Wisley Souza

11/08/2011

  nao funcionou nao... eu joggueia funcao  no custom.js

e fiz assim no template do facelets pra testar:



		

		

			

		

		

		

										

		

		

		

		

		

	






nao ta funcionando, no ie, do jeito de antes ele funciona, ja no bendito firefox nao, oque pode ser?
GOSTEI 0
Wisley Souza

Wisley Souza

11/08/2011

codigo:




<h:form id="formVI" onkeypress=" doSomething(e);" > <a4j:outputPanel id="msgs"> <p:growl showDetail="false" globalOnly="true" life="5000" /> </a4j:outputPanel> <div class="menu3"> <ui:insert name="botoes" /> </div> <ui:insert name="body"> </ui:insert> </h:form>
 
GOSTEI 0
Davi Costa

Davi Costa

11/08/2011

deixa assim no seu h:form


onkeypress="doSomething(event)"


Não coloca no template não, primeira deixa funcionando depois vc pensa nisso. pode ser uma melhor estratégia de desenvolvimento, até o js deixaria na página até estar funcional. Vc ainda está em desenvolvendo depois que tiver ok, vc refatora. Fica melhor p testar debugar, usar o firebug, alterar, corrigir...

att Davi
GOSTEI 0
Wisley Souza

Wisley Souza

11/08/2011

mudei conforme, ams a porcaria nao para na pagina, continua redirecionando, o id do boato nao e capturado, mudei assim:


function doSomething(e) {    if(e.keyCode == 13) {       alert('entra aqui');        return false;    } }

mas o return false não faz efeito algum, continua redirecionando, estou utilizando jquery, isso pode está acosionando o problema, pq o return false naofaz efeito?
GOSTEI 0
Davi Costa

Davi Costa

11/08/2011

Não tem problema não, mas se kizer vc pode deixar só return; // sem o false.
Cara qdo vc conseguir pegar o id do seu botão vc vai resolver.

att Davi
GOSTEI 0
Wisley Souza

Wisley Souza

11/08/2011


  Resolvido...

la no codigo do botao coloquei display:none

era isso, ou pelo menos isso funcionou...
GOSTEI 0
POSTAR