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

Event.keycode == 8


ACPF

Pergunta

Hi Folks,

Eu tenho uma função que formata um campo data enquanto estou digitando dados no mesmo. O problema é que no IE7 ela não acusava erro de javascript e agora que fui testar no IE6 ocorreu este problema.

Aparece o erro Object expected quando clico no botão que realiza a inserção no banco de dados. Após a mensagem o registro é inserido normalmente.

Segue a função para darem uma olhada (o erro aparece na linha do IF):

function FormatMask(objTexto, sMask){
    var i, sMaskTemp, sObjTemp, iLength;
    
    //alert("event.keyCode: " + event.keyCode);
    
    // Se foi pressionado BACKSPACE sair da rotina
    if ( event.keyCode == 8)
    {
        return false;
    }
    //objTexto.value = "";
    //return;
    
    // Obter o tamanho da string
    iLength = objTexto.value.length;
    
    // Obter a mascara deste caracter
    sMaskTemp = sMask.charAt(iLength-1);
    
    // Passar pra maiusculo
    sMask = sMask.toUpperCase();
    
    // Obter o caracter digitado
    sObjTemp = objTexto.value.charAt(iLength-1);
    //sObjTemp = String.fromCharCode(event.keyCode);
    
    //
    // Obter a mascara do próximo caracter
    //
    
    /*
    // Se o próximo caracter é um divisor
    if (sMask.length > iLength)
    {
        sMaskTemp = sMask.charAt(iLength);
    }
    */
    

    // Se o caracter Verificar se mascara: "-" ou "/" ou ":"
    if ( sMaskTemp != "A" && sMaskTemp != "9" && sMaskTemp != "*")
    {
        // Inserir o caracter da máscara entre o que já estava digitado e o caracter digitado neste momento
        objTexto.value = objTexto.value.substr(0, iLength-1) + sMaskTemp + sObjTemp;
        
        // Atualizar o tamanho da string
        iLength = objTexto.value.length;
    } // Verificar se mascara: "-" ou "/" ou ":"


    // Varrer o conteúdo da caixa de texto, em busca de caracteres inválidos
    for (i=0; i<iLength; i++)
    {
        sMaskTemp = sMask.charAt(i);
        sObjTemp = objTexto.value.charAt(i);
        //alert(sMaskTemp);
        
        
        //alert("i: " + i + "\n\n sObjTemp: " + sObjTemp + "\n\n sObjTemp.length: " + sObjTemp.length + "\n\n sMaskTemp: " + sMaskTemp + "\n\n sMaskTemp.length: " + sMaskTemp.length);
        
        // Verificar se mascara: numero
        if ( sMaskTemp == "9")
        {
            if ( isNaN(sObjTemp) )
            {
                objTexto.value = objTexto.value.substr(0, i);
                return false;
            }
        } // Verificar se mascara: numero
        
    
        // Verificar se mascara: letra
        else if ( sMaskTemp == "A" )
        {
            // a(97)-z(122) / A(65)-Z(90)
            if ( !( ( sObjTemp.charCodeAt(0) >= 65 && sObjTemp.charCodeAt(0) <= 90) || ( sObjTemp.charCodeAt(0) >= 97 && sObjTemp.charCodeAt(0) <= 122) ) )
            {
                objTexto.value = objTexto.value.substr(0, i);
                return false;
            }
            
        } // Verificar se mascara: numero

        // Verificar se mascara: qualquer
        else if ( sMaskTemp != sObjTemp )
        {
            //alert("sMaskTemp != sObjTemp");
            objTexto.value = objTexto.value.substr(0, i) + sMaskTemp;
            return false;
        } // Verificar se mascara: numero

    
    } // Varrer o conteúdo da caixa de texto


    // MASCARA: 999-AAA/A
}

Editado por fercosmig
Adicionar tag's
Link para o comentário
Compartilhar em outros sites

1 resposta 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.

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...