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

Dificuldade com Onkeypress


Martinsrj

Pergunta

Olá pessoal, boa tarde!

Estou com dificuldade em utiliza um função de formatação de data no evento onkeypress.

Consigo fazer funcionar estatico dessa forma:

<label id="txtDtDespesa0" for="txtDtDespesa0" class="label">Data da Despesa</label><br />
    <input class="input" type="text" lang="1" title="" maxlength="10" size="10" name="txtDtDespesa0" id="txtDtDespesa0" value="" onFocus="mudarCorCampo(this,'white')" onkeypress="return(FormatarData(this,event))" /><br />
Porem necessito que funcione nesse codigo também:
var textDtDespesa = document.createTextNode("Data Despesa");
  var fontDtDespesa = document.createElement("label");
  
  var quebraDtDespesa = document.createElement('BR');
  var el = document.createElement('input');
  var quebra = document.createElement('BR');
  el.type = 'text';
  el.name = 'txtDtDespesa' + var_txtCont.value;
  el.id = 'txtDtDespesa' + var_txtCont.value;
  el.size = 10;
  
  //el.onkeypress = keyPressTest;
  el.onkeypress = FormatarData;

  fontDtDespesa.appendChild(textDtDespesa); 
  cellRightSel.appendChild(fontDtDespesa); 
  cellRightSel.appendChild(quebraDtDespesa);
  cellRightSel.appendChild(el);
  cellRightSel.appendChild(quebra);
Abaixo é a função:
// Script para formatar datas
function FormatarData(campo,e) {
    var cod=0;
    if(document.all) {
        cod=event.keyCode;
    } else {
        cod=e.which;
    }
    if(cod == 08 || cod == 0) 
        return;
    if (cod < 48 || cod > 57) {
        if ((cod < 45 || cod > 57) && (cod != 13) ) alert("Digite somente Caracteres Numéricos!");
            cod=0;
            campo.focus(); return false;
    }
    tam=campo.value.length;
    if(tam > 9) 
        return false;
    var caract = String.fromCharCode(cod);
    if(tam == 2 || tam == 5) {
        campo.value+="/"+caract;
        return false;
    }
    campo.value+=caract;
    return false;
}

Onde que eu estou errando?

Abraços.

Acabei de colocar no site do Pastebin o código completo:

http://pastebin.com/vEP5hngh

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

1 resposta a esta questão

Posts Recomendados

  • 0
/*Cria uma função de nome mascara, onde o primeiro argumento passado é um dos 
objetos input O segundo é especificando o tipo de método no qual será tratado*/
function mascara(o,f){
    v_obj=o;
    v_fun=f;
    setTimeout("execmascara()",1);
}

function execmascara(){
    /*Pegue o valor do objeto e atribua o resultado da função v_fun; cujo o conteúdo
    da mesma é a função que foi referida e que será utilizada para tratar dos dados*/
    v_obj.value=v_fun(v_obj.value);
}

function vData(v){
    //Remove tudo o que não é dígito
    v=v.replace(/\D/g,"");     
    v=v.replace(/(\d{2})(\d)/,"$1/$2");
    v=v.replace(/(\d{2})(\d)/,"$1/$2");    
    //retorne o resultado
    return v;                             
}

//APLICAÇÃO NO HTML|XHTML
//<input id="data" onkeypress="mascara(this,vData)" maxlength="10" />

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...