Jump to content

Archived

This topic is now archived and is closed to further replies.

Fleury

DateField (dd/mm/aaaa)

Recommended Posts

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)

Share this post


Link to post
Share on other sites

Código revisto.Desculpem a falta de assistência nesse tópico pessoal.Agora ele já está assinado para eu acompanhar :]Abraços,F.

Share this post


Link to post
Share on other sites

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;   }}

Share this post


Link to post
Share on other sites

o L da palavra length deve ser maiusculo em getLength

 

P.S.: Corrigi um bug no script. Cópia e cola de novo.

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.