Eu só copiei e colei o fonte que peguei do Crystian e mandei executar, e no depurador do Firefox deu essa mensagem de erro, e ele aponta na linha 45, onde ele faz o teste pra focalizar o próximo campo, quando ele entra na opção else aponta para onde está escrito "obj.focus".
Ele pula pro próximo campo normalmente, mas o problema é que ele faz com que de erro em outros scripts que coloquei. Será que tem como melhorar este trecho do código pra não dar erro?
Erro: [Exception... "'Permissão negada para ler a propriedade XULElement.selectedIndex' when calling method: [nsIAutoCompletePopup::selectedIndex]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: file:///W:/TMP6i3f568w21.htm :: nextCampo :: line 45" data: no]
Arquivo-fonte: file:///W:/TMP6i3f568w21.htm
Linha: 45
O código que peguei é esse:
<html>
<head>
<script language="JavaScript">
/*
Este script foi desenvolvido por Crystian Zini Valduga,
com a finalidade de ajudar programadores web.
É muito fácil copiar, por isso respeite quem teve a idéia
de fazê-lo. Amanha pode ser você no meu lugar.
Abraço
Bom proveito
Crystian
*/
var campos = new Array();
// Função que adiciona os campos que vão receber o foco
function addCampos(nome){
campos[campos.length] = nome;
}
// Função que trata o evento do teclado.(Quando se clica no enter)
function enter(evt){
var ret = new Boolean(true);
var tecla = (navigator.appName == 'Netscape') ? evt.keyCode : window.event.keyCode;
var nome = (navigator.appName == 'Netscape')?evt.target.name: event.srcElement.name;
var type = (navigator.appName == 'Netscape')?evt.target.type: event.srcElement.type;
if(tecla == 13){
if(type == "button") return true;
ret = nextCampo(nome);
return ret;
}
return ret;
}
// Função que passa o foco para o próximo campo.
function nextCampo(nome){
for(i=0; i< campos.length; i++){ //>
if(campos[i]== nome){
if(i==campos.length-1){
obj = eval('document.forms[0].'+campos[0]);
obj.focus();
break;
} else {
obj = eval('document.forms[0].'+campos[i+1]);
obj.focus();
break;
}
}
}
return false;
}
// atribuição do manipulador ao evento
if(navigator.appName=="Netscape") document.onkeypress = enter;
else document.onkeydown = enter;
</script>
</head>
<body onload="javascript:{document.form.text.focus();}">
<form name="form" action="" method="">
<table align="center">
<tr>
<td>Campo 1:</td><td><input type="text" name="text" size="10"></td>
<script language="javascript">addCampos('text');</script>
</tr>
<tr>
<td>Campo 2:</td><td><input type="checkbox" name="check"></td>
<script language="javascript">addCampos('check');</script>
</tr>
<tr>
<td>Campo 3:</td>
<td>
<select name="select">
<option value="1">Um</option>
<option value="2">Dois</option>
<option value="3">Três</option>
</select>
</td>
<script language="javascript">addCampos('select');</script>
<tr>
<td colspan="2" align="center"><input type="button" name="button" value="enviar"></td>
<script language="javascript">addCampos('button');</script>
</table>
<form>
</body>
</html>
Pergunta
RClotz
Olá!
Eu só copiei e colei o fonte que peguei do Crystian e mandei executar, e no depurador do Firefox deu essa mensagem de erro, e ele aponta na linha 45, onde ele faz o teste pra focalizar o próximo campo, quando ele entra na opção else aponta para onde está escrito "obj.focus".
Ele pula pro próximo campo normalmente, mas o problema é que ele faz com que de erro em outros scripts que coloquei. Será que tem como melhorar este trecho do código pra não dar erro?
O código que peguei é esse:
valeu!
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.