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)
eu tbm estou com o mesmo problema. Alguém tem alguma solução???
Aqui também não funcionou, tanto no IE como no FF.
Código revisto.Desculpem a falta de assistência nesse tópico pessoal.Agora ele já está assinado para eu acompanhar :]Abraços,F.
aonde encaixo o código de verificação ?
if (aniverDateField.getLength() < 8) alert('O aniversário deve conter 8 dígitos');
Em vários lugares. Uma possibilidade é em uma função de válidação, por exemplo:
function validaForm() { if (...) { ... } if (...) { ... } if (...) { ... } if (...) { ... } if (aniverDateField.getLength() < 8) { alert('O aniversário deve conter 8 dígitos'); return false; }}
no meu, a funçao de verificação de dígitos dá o seguinte problemaCall to undefined function: getlength()!!!!!!!!!!!!!!!!
o L da palavra length deve ser maiusculo em getLength
P.S.: Corrigi um bug no script. Cópia e cola de novo.
Aqui deu q aniverDateField nao é um objeto... o q pode ser?