Pergunta

Preciso validar um campo de data/hora em uma página da Web, mas quero fazer isso sem recarregar a página e gostaria de feedback "instantâneo" para os usuários.

Qual é a melhor/mais fácil solução.POR FALAR NISSO:mais fácil pontua 65% do total de pontos

Editar:E se o melhor fosse 65% do total de pontos?

Foi útil?

Solução 10

Parece que há um ótimo vídeo sobre o ASP.NET AJAX Control Toolkit que fornece o controle MaskedEdit e o controle MaskedEditValidator que funcionam muito bem.Não é fácil para iniciantes, mas feedback MUITO bom e instantâneo.

Obrigado por todas as respostas!

asp.net

Infelizmente não posso aceitar esta resposta.

Outras dicas

Se você quiser usar JavaScript, ele possui funções de validação de data integradas.No entanto, se você não quiser seguir o caminho do JavaScript, poderá alterar a interface do usuário para controles suspensos, o que limitaria a capacidade dos usuários de inserir dados inválidos.Você ainda precisará verificar o lado do servidor para garantir que ninguém envie em 30 de fevereiro.

Veja isso validação de data javascript função.

Utiliza javascript, expressões regulares e o evento 'onblur' de uma entrada de texto.

@David H.Austrália

Usar o onblur para validação é problemático, porque algumas pessoas usam a tecla Enter, e não o mouse, para enviar um formulário.Usar o onblur e o evento onsubmit do formulário em conjunto pode ser uma solução melhor.Na época em que eu fazia muito mais validação de JS para formulários, eu executava eventos de keyup.Isso deu ao usuário feedback instantâneo sobre se sua entrada estava correta ou não.Você pode (e eu fiz) também colocar verificações para que o usuário não receba uma mensagem "incorreta" até que ele saia do campo (já que você não deve dizer a ele que ele está incorreto se não tiver feito isso ainda).

Eu recomendaria usar menus suspensos para datas, conforme indicado acima.Eu realmente não consigo pensar em nenhum motivo para não fazer isso - você deseja que o usuário escolha entre dados predefinidos, e não forneça algo único que você não possa antecipar.

Você pode evitar 30 de fevereiro com um pouco de Javascript (faça com que o campo de dias seja preenchido dinamicamente com base no mês).

@Brian Warshaw
Esse é um ponto muito bom que você destaca sobre não esquecer os usuários que navegam pelo teclado (uh, eu).

Obrigado por chamar nossa atenção para isso.

Um método javascript simples que lê o que está no campo de entrada ao enviar e o valida.Se não for válido, retorne false para que o formulário não seja enviado ao servidor.

... onSubmit="return validateForm();" ...

Certifique-se de validar também no lado do servidor, é fácil ignorar a validação de javascript.

Se você estiver usando o ASP.NET, ele possui controles validadores que você pode apontar para caixas de texto que podem ser usadas para validar formatos de data/hora adequados.

Existem alguns widgets de data disponíveis no Aether.Então você pode permitir apenas entradas válidas.

Eu usei esse pequeno código js em alguns projetos, ele será atualizado de forma rápida e fácil junto com alguns outros.

Link

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top