Validação ASP.NET MVC com Globalização

Olá a todos,

Utilizando o ASP.NET MVC temos várias tarefas primárias feitas “automaticamente” para nós, entre elas, a questão de validação de dados: campos obrigatórios, formatos de dados e etc.

Entretanto, podemos encontrar dificuldade em alguns pontos da validação. Enquanto no Brasil o formato para uma data é dia/mês/ano, nos EUA já temos o formato mês/dia/ano.

Nos números também temos diferenças. 100,25 é um número válido para nós Brasileiros, mas não na cultura americana.

Continuar lendo

JQuery Datatables e ASP.NET MVC – Duas abordagens

Olá a todos,

Após quase 2 anos desenvolvendo em PHP, retorno ao continente Microsoft, no país .NET, numa cidadezinha com o nome de ASP.NET, na rua C#.

De agora em diante, espero fazer publicações relacionadas a essa tecnologia. Não guardo rancor contra o PHP, o problema sou eu, não ele, me entende? Quero o melhor para o PHP, por isso preciso me afastar (papo aleatório para dar um FORA).

Pra começar a brincadeira, que falar sobre Datatables e ASP.NET MVC! Separei duas abordagens para vocês, ilustres visitantes.

Código fonte para acompanhar o artigo.

Continuar lendo

Javascript – Máscara para nono dígito de celular

Boa noite,

Recentemente enfrentei um problema interessante no trabalho. Foi necessário programar uma máscara com o nono dígito opcional para celulares de São Paulo que contivessem o dígito “9”.

Por exemplos, o campo deveria aceitar (e exibir com uma formatação agradável visualmente) os seguintes valores:

8391-7788

98391-7788

Foi necessário um pouco de javascript para atender a necessidade, deixo abaixo o código (usando JQuery e JQuery Masked Input) que usamos para resolver o problema:

		<script>

			//acrescenta à classe string um método necessário para facilitar
			String.prototype.splice = function( idx, rem, s ) {
				return (this.slice(0,idx) + s + this.slice(idx + Math.abs(rem)));
			};

			$(function(){

				//máscara inicial com o nono digito opcional
				$("#txtCel").mask('9999-9999?9');

				//ao sair do campo, vamos atualizar a máscara
				$("#txtCel").focusout(function(){

					//pegando apenas os digitos
					var cel = $("#txtCel").val().replace('-','').replace(/_/g,'');

					//se tiver 8 digitos
					if(cel.length == 8)
					{
						//vamos colocar o '-' no meio
						cel = cel.splice(4, 0, '-');
						//seta a máscara para aceitar o nono digito
						$("#txtCel").mask('9999-9999?9');
					}
					//caso contrário
					else if(cel.length == 9)
					{
						//deixamos 5 digitos na esquerda
						cel = cel.splice(5,0, '-');
						//seta a máscara para aceitar um digito a menos (caso tenha digitado errado)
						$("#txtCel").mask('99999-999?9');
					}

					//põem o valor no campo
					$(this).val(cel);

				});

			});
		</script>

Fecha a régua e passa a conta! (ou algo assim)

Vantagens com HTML5 – Custom Data Attributes

HTML5_Logo_256

Ainda não são todos os browsers que interpretam corretamente todas as especificações do HTML5, mas podemos usar algumas idéias em nossos códigos e designs atuais para facilitar nossas vidas.

Por exemplo, o uso de Custom Data Attributes (Atributos de dados customizados, em tradução livre) pode auxiliar a guardar dados em elementos DOM. Este será o foco do artigo.

Continuar lendo