Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Nome: DateField
Descrição: Possibilita um campo de texto com máscara de data com posições fixas.
Versão: 1.3.1
Autor: Diego Fleury
Data de postagem: 08/07/2006
Código:
<script language="javascript">// Autor: Diego Fleury - dfleury<arroba>gmail.com// Versão: 1.3.1// Este código é de uso livre a todos mas não deixe de dar os créditos. Não remova estes comentário para não violar os direitos autorais.function DateField(objectId) { var data = new String(); var maxlength = 8; var obj = objectId; if (document.getElementById(obj).value != " / / ") data = document.getElementById(obj).value.replace(/\/|\s/g,""); var len = data.length; function getKey(event) { return event?(event.keyCode?event.keyCode:(event.which?event.which:event.charCode)):null; } this.getLength = function() { return data.length; } this.mask = function(event) { var k = getKey(event); if (k != 9) { if (k > 95 && k < 106) k -= 48; if (/[0-9]/.test(String.fromCharCode(k))) { if (len < maxlength) { data += String.fromCharCode(k); len++; } else return false; } else if (k == 8) { if (len > 0) data = data.substring(0,--len); } else return false; var mask = new String(" / / "); var v = new String(); if (len <= 2) v = data + mask.substring(len,maxlength); else if (len > 2 && len <= 4) v = data.substring(0,2) + "/" + data.substring(2,len) + mask.substring(len+1,maxlength); else if (len >= 5) v = data.substring(0,2) + "/" + data.substring(2,4) + "/" + data.substring(4,len) + (len<maxlength?mask.substring(len+1,maxlength):""); document.getElementById(obj).value = v; return false; } return true; } }var aniverDateField;window.onload = function() { aniverDateField = new DateField("aniversario"); // O parametro deve ser o ID do campo.}</script>
Uso:
Este código acima deve ficar entre as tags <head> e </head>
Código de exemplo do input
<input class="input" type="text" name="aniversario" id="aniversario" size="10" maxlength="10" style="font-family: 'Courier New', Courier, monospace" value=" / / " onkeydown="return aniverDateField.mask(event);" onblur="if (this.value.length >= 11) this.value = this.value.substring(0,10)" />
Verificando o campo
if (aniverDateField.getLength() < 8) alert('O aniversário deve conter 8 dígitos');
Exemplo: www.dialhost.com.br/assine.php (campo de aniversário no segundo passo)
Carregando comentários...