Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

red neck *

keycode

Recommended Posts

oi beleza?eu estou trabalhando com um script de mascara, porem ele so funciona em ie, estou tentando transforma-lo no maximo crossbrowser possivel, para isso preciso arrumar o keycode (so funfa em ie)...olhe como estou fazendo:

var Key = (teclapres.which) ? teclapres.which : (teclapres.keyCode) ? teclapres.keyCode : teclapres.charCode;

o teclapres é um parametro da funcao, function mascara(campo,teclapres,mascara){vem da mascara, mascara(this,event,'mascara');em ie funfa normal, mais em mozilla da esse erro: Erro: event is not defined Arquivo-fonte: http://localhost:99/vera/admin/html/mascara.jsalguem sabe como arrumar?desde já agradecoabracos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte red neck* o keyCode tb funciona no mozilla, dependendo em qual evento você está chamando ele. O interessante seria você dar uma lida em algum material sobre eventos de teclado e o melhor lugar é na w3c...

dá uma olhada no level 3

 

http://www.w3.org/DOM/DOMTR

 

Abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AAlves, seu exemplo é praticamente igual a como estava fazendo, so que ele so funfa em firefox, da aquele erro:

Erro: event is not definedArquivo-fonte: http://localhost:99/vera/admin/html/mascara.jsLinha: 141

@Crystian, vixi nao manjo nada de ingles, tentei achar, mais nao achei nada =/.. mesmo assim valeu ai aos doisalguem sabe como me ajudar?abracos

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda nao consegui =/....eu descobri que o que esta errado nao é isso... isso ja estava certo.. ta dando erro nessa funcao da mascara:

function Detona_Event(Campo,strtext){    event.returnValue = false    if (strtext != "") {        Campo.value = strtext    }}

diz que event nao foi definido, acho que isso so funfa em IE, mais eu nao sei nem para que serve esse returnValue = false, como posso deixar crossbrowser, alguem ajuda?desculpa postar de novo, mais é trampo, responsabilidade, ae ja viu ne =/desde ja agradecoabracos

Compartilhar este post


Link para o post
Compartilhar em outros sites

é Crystian, minha praia nao é js mesmo...

 

to comecando a desistir, isso nao ta indo de jeito nenhum, porque todos os browsers nao tem essas funcoes do ie que sao boas? =/

 

eu ja tentei fazer de tudo, e nada funciona... nao da erro, mais simplismente adiciona letras no campo de telefone no firefox...

 

olha a fonte:

 

function FormataCampo(Campo,teclapres,mascara){

    //pegando o tamanho do texto da caixa de texto com delay de -1 no event

    //ou seja o caractere que foi digitado não será contado.

    strtext = Campo.value

    tamtext = strtext.length

    //pegando o tamanho da mascara

    tammask = mascara.length

    //criando um array para guardar cada caractere da máscara

    arrmask = new Array(tammask)   

    //jogando os caracteres para o vetor

    for (var i = 0 ; i < tammask; i++){

        arrmask = mascara.slice(i,i+1)

    }

 

var Key = teclapres.keyCode ? teclapres.keyCode : teclapres.which ? teclapres.which : evtKeyPress.charCode;

 

    //alert (teclapres.keyCode)

    //começando o trabalho sujo

 

    if (((((arrmask[tamtext] == "#") || (arrmask[tamtext] == "9"))) || (((arrmask[tamtext+1] != "#") || (arrmask[tamtext+1] != "9"))))){

        if ((Key >= 37 && Key <= 40)||(Key >= 48 && Key <= 57)||(Key >= 96 && Key <= 105)||(Key == 8)||(Key == 9) ||(Key == 46) ||(Key == 13)){

            Organiza_Casa(Campo,arrmask[tamtext],Key,strtext)       

        }

        else{

            Detona_Event(Campo,strtext)

        }

    }

    else{//Aqui funcionaria a mascara para números mas eu ainda não implementei

        if ((arrmask[tamtext] == "A"))    {

            charupper = event.valueOf()

            //charupper = charupper.toUpperCase()

            Detona_Event(Campo,strtext)

            masktext = strtext + charupper

            Campo.value = masktext

        }

    }

}

function Organiza_Casa(Campo,arrpos,teclapres_key,strtext){

    if (((arrpos == "/") || (arrpos == ".") || (arrpos == ",") || (arrpos == ":") || (arrpos == " ") || (arrpos == "-")) && !(teclapres_key == 8)){

        separador = arrpos

        masktext = strtext + separador

        Campo.value = masktext

    }

}

 

function Detona_Event(Campo,strtext){

    return false;

    if (strtext != "") {

        Campo.value = strtext

    }

}

bom, se nao tiver como resolver mesmo, muito obrigado a todos e desculpa ai o incomodo

 

abracos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Calma Red, vamos dar um jeito nisso, não te preocupa q em últimos casos eu te dou um outro código pronto e agente trabalha em cima dele par te explicar. Primeiramente me diz como você está chamando essa function...Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

então Crystian, eu chamo a funcao assim: onkeydown="FormataCampo(this,event,'## ####-####')", ele mascara certinho, funciona certinho, so que no firefox adiciona letras , quando so era para adicionar numeros, eu já tentei de tudo, primeiro erro arrumei aquele do keycode não funcionar em firefox, agora arrumei o do event.returnValue, agora nao da mais erro... mais continua sem funcionar...valeu a ajuda mesmo, mais se nao tiver como resolver/for muito complicado, desencana =/abracos

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu no mesmo, ele funciona a mascara, mais continua permitindo letras no firefox, so que agora mascara as letras, ex : dw dwad-dawd :S, a outra coisa quando eu mudei o event.returnValue = false para return false parou de funcionar no ie, o problema esta exatamente ai , no event.returnvalue, nao existe um desse para ff ?abracos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelismente não... Trabalhar com eventos não é uma tarefa fácil, cada navegador tem sua peculiaridade e conforme algum método q você usa ele funciona ou não...Vou ver se consigo algum material pra te passar...Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.