Ir para conteúdo
Fórum Script Brasil
  • 0

Enter Como Tab


djssbc

Pergunta

Pessoal, esta funcao abaixo é pra funcionar o enter como tab, alias, vairas outras tecla, como seta pra baixo e page down, e assim vale pra subir, o esc, page up e seta pra cima, mas ele não funciona no firefox, so no IE, que que acontece ai!?

function entertab(formc,campo){
nextfield = campo;
prevfield = campo;
netscape = '';
ver = navigator.appVersion; len = ver.length;

for(iln = 0; iln < len; iln++) if (ver.charAt(iln) == '(') break;
netscape = (ver.charAt(iln+1).toUpperCase() != 'C');

function keyDown(DnEvents) {
k = (netscape) ? DnEvents.which : window.event.keyCode;
nome = (navigator.appName == 'Netscape') ? DnEvents.target.name: event.srcElement.name;

objnext = eval(formc + '.' + nextfield );
typenext = objnext.type;
if (!typenext) {
objnext = eval(formc + '.' + nextfield + '[0]' );
typenext = objnext.type;
}

if (nome == 'pessoa_sexo'){
if (k == 70){
eval(formc + '.' + nome + '[1].checked = true;');}
if (k == 77){
eval(formc + '.' + nome + '[0].checked = true;');}
}

if ((k == 13) || (k == 40) ||(k == 34)) {
if (nextfield == 'done') {
return false;
} else {
if (typenext == 'radio') {
eval(formc + '.' + nextfield + '[0].focus();');
eval(formc + '.' + nextfield + '[0].select();');
} else {
eval(formc + '.' + nextfield + '.focus()');
}
return false;
}
}

objprev = eval(formc + '.' + prevfield );
typeprev = objprev.type;
if (!typeprev) {
objprev = eval(formc + '.' + prevfield + '[0]' );
typeprev = objprev.type;
}

if ((k == 27) ||(k == 38) || (k == 33)) {
if (prevfield == 'done') {
return false;
} else {
if (typeprev == 'radio') {
eval(formc + '.' + prevfield + '[0].focus();');
eval(formc + '.' + prevfield + '[0].select();');
} else {
eval(formc + '.' + prevfield + '.focus()');
}
return false;
}
}
}

// document.onkeydown = keyDown;
// if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);

if (document.addEventListener){
document.addEventListener('keydown', keyDown, false);
} else if (document.attachEvent){
document.attachEvent('onkeydown', keyDown);
}



}[/codebox]

[codebox]<input name="aluno_recebe_info" type="radio" onFocus="nextfield ='aluno_senha';prevfield ='aluno_cad_turma';"
value="s" checked <?=$chk_rec_info[s] ?>>

Editado por djssbc
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olha o que eu fiz... dá pra começar seu Script, acho. Juntei aquela máscara que você fez (e ajudei...) com um esquema para usar o ENTER como TAB, e setas para cima e para baixo também. É simples, como todo script que eu faço, mas funciona! Testa aí.

<html>
<head>
<meta http-equiv="Content-Language" content="pt-br">
&lt;script type="text/javascript">

var keycode;
var proximo_item = 0;
var item_anterior = 0;

document.onkeydown = obtem_chave;

function obtem_chave(e)
{
if (window.event)
{
keycode = window.event.keyCode;
}
else if (e)
{
keycode = e.which;
}
}

function checa_alternar()
{
switch (keycode)
{
case 13:
if (proximo_item != 0)
{
proximo_item.focus();
}
break;
case 40:
if (proximo_item != 0)
{
proximo_item.focus();
}
break;
case 38:
if (item_anterior != 0)
{
item_anterior.focus();
}
break;
}
}

function mascara(formato, objeto)
{

campo = eval (objeto);

if (formato=='cep')
{
caracteres = '0123456789';
separacoes = 1;
separacao1 = '-';
conjuntos = 4;
conjunto1 = 5;
conjunto4 = 8;

if ((caracteres.search(String.fromCharCode (keycode))!=-1) && campo.value.length < (conjunto4))
{
if (campo.value.length == conjunto1) campo.value = campo.value + separacao1;
}
else {
if (!sonumero(event)) event.returnValue = false;
}
}

if (formato=='horaminuto')
{
caracteres = '0123456789';
separacoes = 1;
separacao1 = ':';
conjuntos = 4;
conjunto1 = 2;
conjunto4 = 4;
if ((caracteres.search(String.fromCharCode (keycode))!=-1) && campo.value.length < (conjunto4))
{
if (campo.value.length == conjunto1) campo.value = campo.value + separacao1;
}
else {
if (!sonumero(event)) event.returnValue = false;
}
}
}</script>
</head>

<body>

<form method="post" style="height: 134px">

Campo 1<br>
<input id="campo1" name="Text1" type="text" onfocus="proximo_item = document.getElementById('campo2'); item_anterior = 0;" onkeyup="checa_alternar(); mascara('cep',this);"><br>
<br>
Campo 2<br>
<input id="campo2" name="Text2" type="text" onfocus="proximo_item = document.getElementById('campo3'); item_anterior = document.getElementById('campo1');" onkeyup="checa_alternar(); mascara('horaminuto',this);"><br>
<br>
Campo 3<br>
<input id="campo3" name="Text3" type="text" onkeyup="checa_alternar();" onfocus="proximo_item = 0; item_anterior = document.getElementById('campo2');" >

</form>

</body>

</html>[/codebox]

(aquela sua função "sonumero" continua aí, sem definição... e usa o recurso "event" próximo a esta função, que não vale no Firefox...)

Vlw?

B)

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...