terça-feira, 25 de setembro de 2012

MeioMask: Um Plugin JQuery muito útil para máscaras de campos


Para fazer máscaras para campos que possuem um padrão definido, como por exemplo cpf, telefone, cep, etc, utilizo este plugin para facilitar a vida.

Ele está disponível aqui:
https://github.com/zejuniortdr/jquery.meiomask.9digito

Depois de adicioná-lo em sua página, basta criar um arquivo de iniciliação como o a seguir:




 /* Mascaras pre-existentes*/
/*$.mask.masks : {
 'phone'     : { mask : '(99) 9999-9999' },
 'phone-us'  : { mask : '(999) 9999-9999' },
 'cpf'       : { mask : '999.999.999-99' },
 'cnpj'      : { mask : '99.999.999/9999-99' },
 'date'      : { mask : '39/19/9999' }, //uk date
 'date-us'   : { mask : '19/39/9999' },
 'cep'       : { mask : '99999-999' },
 'time'      : { mask : '29:69' },
 'cc'        : { mask : '9999 9999 9999 9999' }, //credit card mask
 'integer'   : { mask : '999.999.999.999', type : 'reverse' },
 'decimal'   : { mask : '99,999.999.999.999', type : 'reverse', defaultValue: '000' },
 'decimal-us'    : { mask : '99.999,999,999,999', type : 'reverse', defaultValue: '000' },
 'signed-decimal'    : { mask : '99,999.999.999.999', type : 'reverse', defaultValue : '+000' },
 'signed-decimal-us' : { mask : '99,999.999.999.999', type : 'reverse', defaultValue : '+000' }
}
*/

 /* Mascaras personalizadas */
$.mask.masks = $.extend($.mask.masks,{
    msk:{ mask: '999-999' },
    other_msk:{ mask: '6666' },
    another_one:{ mask: '7777' , type:'reverse' },
    dose:{ mask: '99'},
    termina_em:{ mask: '39/19/9999', autoTab:false },
    phone_9digito:{ mask: '(99) 99999-9999'}
});

(function($){
 $(function(){
  $('input:text').setMask();
  var ddds = ['11) 9','12) 9','13) 9','14) 9','15) 9','16) 9','17) 9','18) 9','19) 9','21) 9','22) 9','24) 9','27) 9','28) 9'];

  // SP 11 - 19
  // RJ 21,22,24
  // ES 27,28

  $('#id_telefone, #id_celular, #id_celular_validacao, #id_telefone').keydown(function(event) {
   if( procura_no_array($(this).val().substring(1,6), ddds) >= 0){
    $(this).attr('alt','phone_sp');
   }else{
    $(this).attr('alt','phone');
   }
   $(this).setMask();
  });
 });

})(jQuery);

No comentário acima, é possivel verificar alguns dos tipos disponíveis deste plugin, e se caso achar necessário pode-se criar novas máscaras como pode ser visto logo abaixo do bloco comentado. O init normal resume-se a apenas a instrução  $('input:text').setMask(); chamada no onload da página.

Com a nova norma da Anatel, os celulares de São Paulo receberam o número 9 a frente dos 8 dígitos já existentes, e uma personalização para tal foi necessária no plugin. No evento onkeypress de todos os campos telefones e celulares, caso o DDD tenha o nono dígito, será aplicado a máscara personalizada "phone_9digito", caso contrário a máscara normal de telefone ("phone") será aplicada.

Para aplicação de qualquer máscara em seus inputs, basta colocar a identificação da máscara no atributo alt do input. Como no exemplo abaixo:

<input alt="phone_9digito" class="input2" id="id_telefone" name="telefone" placeholder="Telefone" type="text" value="" />

quinta-feira, 23 de agosto de 2012

Atualizando campo datetime com valores aleatórios

Muitas vezes, principalmente durante testes na fase de desenvolvimento, é preciso gerar datas aleatórias para os registros que muitas vezes já estão no banco.

O CÓDIGO:

UPDATE artigos_artigo SET data =  FROM_UNIXTIME(RAND() * 2147483647)


hasta!

terça-feira, 14 de agosto de 2012

Somando/Subtraindo datas com DATE_ADD no MySQL

O CÓDIGO:

UPDATE perguntas_pergunta SET data_disparo = DATE_ADD(data_disparo,  INTERVAL 7 DAY);

Outros tipos de INTERVAL podem ser consultados em: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add.

Para subtração de datas, basta utilizar um valor negativo do intervalo escolhido.

hasta!

sexta-feira, 22 de junho de 2012

Validar email em JS

O CÓDIGO:



function valida_email(mail){
var er = RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
if(mail == "" || er.test(mail) == false){
    return false;
}
return true;
}

hasta!

quarta-feira, 6 de junho de 2012

Remover acentos com PHP

O CÓDIGO:


function retira_acentos($texto){
return strtr($texto, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ", "aaaaeeiooouucAAAAEEIOOOUUC");
}

O USO:
echo  retira_acentos("Teste de acentuação");
// saida: Teste de acentuacao


quinta-feira, 31 de maio de 2012

IE Hacks - Adequando o site aos problemas do Internet Explorer


A sintaxe geral para escrever comentários condicionais é a mostrada a seguir:

Afirmativa
<!--[if condição]> HTML  < ![endif]-->
Negativa
< !--[if !condição] >  < ![IGNORE[--> < ![IGNORE[]] >  HTML  < !-- < ![endif]-- >

HTML

condição admite uma das seguintes sintaxes:

IE
Todas as versões do IE

lt IE versão
Versões anteriores a versão

lte IE versão
Versões anteriores ou igual a versão

IE versão
Somente a versão versão

gte IE versão
Versões posteriores ou igual a versão

gt IE versão
Versões posteriores a versão

versão é a versão do Internet Explorer, tipicamente 5, 5.5, 6, ou 7

HTML é a marcação HTML regular a ser incluida se a condição for ou não for satisfeita dependendo do tipo de condição declarada, se afirmativa ou negativa. Quando incluida, a marcação será iserida no código, no mesmo local onde se encontra o comentário condicional.

Para condições negativas a diretiva pode ser abreviada para --> se a condição for simplesmente IE. A sintaxe não abreviada é necessária somente quando o Internet Explorer tem que parsear o conteúdo do comentário.

A diretiva não é aceita em XML, assim seu uso é ilegal em XHTML. Uma solução é dividir a diretiva em dois comentários condicionais especiais: XHTML na qual XHTML é o mesmo nas duas diretivas. Notar que o Internet Explorer 7 e anteriores não reconhecem XHTML servido como XML, assim esta observação que acabamos de fazer aplicar-se-á, possivelmente, somente para versões futuras do IE.

Com a finalidade de evitar que o seu site "quebre" em versões futuras do Internet Explorer leia um artigo em inglês denominado Preparing your site for IE.next.

Transparencia de um elemento via CSS

O CÓDIGO:


.opacidade40 { opacity:0.4; filter:alpha(opacity=40); }

O USO:

<div> Div com 40% de transparência </div>