Advertisement
vini_lip

Validacao CEP

May 22nd, 2015
367
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function onChange(control, oldValue, newValue, isLoading, isTemplate) {
  2.     if (isLoading || newValue == '') {
  3.         return;
  4.     }
  5.    
  6.  
  7.     var strCep, antesDoTraco, depoisDoTraco = "";          // variáveis para a o tratamento da máscara com traço
  8.     var formCep = g_form.getValue('u_novo_cep');             // string que guarda o valor do campo Novo Cep
  9.     var tamanho = formCep.length;                           // guarda o tamanho da string
  10.    
  11.    
  12.     // Ao final da validação, se tudo estiver ok, um traço é inserido no índice
  13.     // indicado abaixo, porém como é um evento onChange, o script acaba sendo
  14.     // executado novamente, então o traço é tratado no bloco de código abaixo
  15.     if(formCep[5] == '-'){
  16.         if(tamanho-1 != 8){                                  // -1, pois não está contando o traço
  17.             alert('Informe o CEP no formato 00000-000, sem traço!');
  18.             g_form.setValue('u_novo_cep', '');
  19.             return;                                          // interrompe a função
  20.         }
  21.         for(var i = 0; i < tamanho; i++){                      // varrendo a string a procura de qualquer coisa != number
  22.             if( i == 5)
  23.                 continue;                                      // o traço fica no índice 5, deve ser ignorado
  24.             if(isNaN(parseInt(formCep[i]))){                    // não é número?
  25.                 g_form.setValue('u_novo_cep', '');
  26.                 alert('CEP incorreto!\nSomente números!');
  27.                 break;                                        // interrompe o laço
  28.             }
  29.         }
  30.         return;                                              // interrompe a função
  31.     }
  32.    
  33.     // o CEP é maior que 8 digitos?
  34.     if(tamanho != 8){
  35.         alert('Informe o CEP no formato 00000-000, sem traço!');
  36.         g_form.setValue('u_novo_cep', '');
  37.         return;
  38.     }
  39.    
  40.    
  41.     for(var i = 0; i < tamanho; i++){
  42.         if(i == 5){
  43.             if(formCep[i] == '-')
  44.                 continue;
  45.         }
  46.         if(isNaN(parseInt(formCep[i]))){
  47.             g_form.setValue('u_novo_cep', '');
  48.             alert('CEP incorreto!\nSomente números!');
  49.             return;
  50.         }
  51.     }
  52.        
  53.         // aplicando a máscara 00000-000 ( traço )
  54.         strCep = formCep;
  55.         antesDoTraco = strCep.slice(0,5);
  56.         depoisDoTraco = strCep.slice(5,8);
  57.         strCep = antesDoTraco + '-' + depoisDoTraco;
  58.         g_form.setValue('u_novo_cep', strCep);
  59.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement