Chamando função java script fora da página jsf, em um arquivo .js

3 respostas
T

Bom dia pessoal... estou tentando chamar uma função que está em um arquivo .js, mas está dando um erro dizendo que o objeto é esperado;

minha função:

<script type="text/javascript">
	function acionaBotao(event) {
				
	if(event.keyCode==97 || event.which == 97 || event.charCode == 97) {
			       document.getElementById("form:Alt").click();
			    }
			    if(event.keyCode==101 || event.which == 101 || event.charCode == 101) {
			       document.getElementById("form:Del").click();
			    }
			}				
		</script>

ná minha página jsf eu chamo ela assim:

<f:view>
	<head>
		<script language="JavaScript" src="../script.js"></script>
		<link href="../style.css" rel="stylesheet" rev="stylesheet"></link>
		</head>
<body leftmargin="0" topmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
<hr color="#c0c0c0" size="1">
			<br><br>
				<br><br>
				<rich:panel onkeypress="acionaBotao(event);" styleClass="panel">
					<rich:scrollableDataTable value="#{usuario.listar}" var="obj" 
					id="lista" rows="10" sortMode="single" binding="#{usuario.listaUsuario}" headerClass="colunaTabela"
					frozenColCount="1" width="350px" height="220px" rowClasses="linhaTabela1,linhaTabela2"
					columnClasses="colunaCentro,colunaEsquerda,colunaEsquerda">	
						<rich:column id="usuaSeq" sortExpression="#{obj.usuaSeq}">
							<f:facet name="header" >
								<h:outputText value="Código"/>	
							</f:facet>
							<h:outputText value="#{obj.usuaSeq}" />
						</rich:column>
						<rich:column id="nome" sortExpression="#{obj.usuaNome}">
							<f:facet name="header" >
								<h:outputText value="Nome" />
							</f:facet>
							<h:outputText value="#{obj.usuaNome}" />
						</rich:column>
						<rich:column id="perfil" sortExpression="#{obj.perfil.perfDesc}">
							<f:facet name="header" >
								<h:outputText value="Perfil" />
							</f:facet>
							<h:outputText value="#{obj.perfil.perfDesc}" />
						</rich:column>
							</rich:scrollableDataTable>
				</rich:panel>
				<rich:spacer height="30"/>
				<rich:datascroller align="left" for="lista" maxPages="20"/>
				<br><br>
				<h:outputText id="excecao" value="#{excecao.excecao}" styleClass="outputExcecao"/><br>
		
			<br><br>
			 <a4j:commandButton id="Alt" value="Alterar" reRender="table" 
			                action="#{usuario.loadAlterar}" styleClass="btnConfirmar"/>
 			<a4j:commandButton value="Excluir" reRender="table" id="Del"
                action="#{usuario.selecionar}" styleClass="btnexcluir"
                oncomplete="javascript:Richfaces.showModalPanel('mp',{width:450, top:200});"/>

3 Respostas

Y

Por que a tua função está com as tag’s SCRIPT?

Se a tua função está me um arquivo JS, então tire as tag’s, ficando assim:

function acionaBotao(event) {   
                   
    if(event.keyCode==97 || event.which == 97 || event.charCode == 97) {   
                   document.getElementById("form:Alt").click();   
                }   
                if(event.keyCode==101 || event.which == 101 || event.charCode == 101) {   
                   document.getElementById("form:Del").click();   
                }   
            }

No arquivo JS tu deves colocar o script corrido, sem tag’s.

T

blz… mano… mas continua dando o mesmo erro no navegador… “objeto esperado”;

Yky Mattshawn:
Por que a tua função está com as tag’s SCRIPT?

Se a tua função está me um arquivo JS, então tire as tag’s, ficando assim:

function acionaBotao(event) {   
                   
    if(event.keyCode==97 || event.which == 97 || event.charCode == 97) {   
                   document.getElementById("form:Alt").click();   
                }   
                if(event.keyCode==101 || event.which == 101 || event.charCode == 101) {   
                   document.getElementById("form:Del").click();   
                }   
            }

No arquivo JS tu deves colocar o script corrido, sem tag’s.

T

outra coisa tinha me esquecido de declarar o id do meu form… deu certo mas com a função dentro do código jsf, mas quando tenho chamar a função de dentro de um arquivo. js não dá certo… helppppp…

obrigado…

tiagotmr:
blz… mano… mas continua dando o mesmo erro no navegador… “objeto esperado”;

Yky Mattshawn:
Por que a tua função está com as tag’s SCRIPT?

Se a tua função está me um arquivo JS, então tire as tag’s, ficando assim:

function acionaBotao(event) {   
                   
    if(event.keyCode==97 || event.which == 97 || event.charCode == 97) {   
                   document.getElementById("form:Alt").click();   
                }   
                if(event.keyCode==101 || event.which == 101 || event.charCode == 101) {   
                   document.getElementById("form:Del").click();   
                }   
            }

No arquivo JS tu deves colocar o script corrido, sem tag’s.

Criado 27 de março de 2008
Ultima resposta 27 de mar. de 2008
Respostas 3
Participantes 2