Como faço para verificar / validar no jQuery se a data de término [caixa de texto] é maior que a data de início [caixa de texto]?
jquery
date
jquery-validate
entrada
fonte
fonte
Respostas:
Apenas expandindo a resposta das fusões. este método de extensão funciona usando o plugin de validação jQuery. Vai validar datas e números
Para usá-lo:
ou
fonte
code
if (value == 0) {return true; } else if (! / Invalid | NaN / ...code
Isso deve bastar, eu acho
fonte
Um pouco tarde para a festa, mas aqui é a minha parte
Aqui está o detalhe:
fonte
Consulte jquery.validate.js e jquery-1.2.6.js. Adicione uma classe startDate à sua caixa de texto da data de início. Adicione uma classe endDate à sua caixa de texto de data de término.
Adicione este bloco de script à sua página: -
Espero que isto ajude :-)
fonte
Eu estava apenas brincando com a resposta de danteuno e descobri que, embora seja bem-intencionado, infelizmente está quebrado em vários navegadores que não são o IE. Isso ocorre porque o IE será bastante rígido sobre o que aceita como argumento para o
Date
construtor, mas outros não. Por exemplo, o Chrome 18 ofereceIsso faz com que o código tome o caminho de "comparar datas" e tudo desmorone a partir daí (por exemplo,
new Date("11")
é maior quenew Date("66")
e isso é obviamente o oposto do efeito desejado).Portanto, após consideração, modifiquei o código para dar prioridade ao caminho "números" sobre o caminho "datas" e validar se a entrada é realmente numérica com o excelente método fornecido em Validar números decimais em JavaScript - IsNumeric () .
No final, o código se torna:
fonte
Os valores de data dos campos de texto podem ser obtidos pelo método jquery .val (), como
Eu recomendo fortemente que você analise as strings de data antes de compará-las. O objeto Date do Javascript tem um método parse () -, mas suporta apenas formatos de data dos EUA (AAAA / MM / DD). Ele retorna os milissegundos desde o início da época unix, então você pode simplesmente comparar seus valores com> ou <.
Se você quiser formatos diferentes (por exemplo, ISO 8661), você precisa recorrer a expressões regulares ou à biblioteca date.js gratuita.
Se você quiser ser super amigável ao usuário, pode usar jquery ui datepickers em vez de textfields. Existe uma variante do selecionador de data que permite inserir intervalos de datas:
http://www.filamentgroup.com/lab/date_range_picker_using_jquery_ui_16_and_jquery_ui_css_framework/
fonte
Portanto, eu precisava que essa regra fosse opcional e nenhuma das sugestões acima é opcional. Se eu chamar o método, ele será exibido como necessário, mesmo se eu configurá-lo para precisar de um valor.
Esta é a minha chamada:
Minha
addMethod
resposta não é tão robusta quanto a de Mike E., mas estou usando o selecionador de data JqueryUI para forçar uma seleção de data. Se alguém puder me dizer como ter certeza de que as datas são números e ter o método opcional, isso seria ótimo, mas por enquanto este método funciona para mim:fonte
Em javascript / jquery, a maioria do desenvolvedor usa comparação de datas De & Até, que é uma string, sem converter para o formato de data. A maneira mais simples de comparar a partir da data é maior do que a data atual.
Sempre analise desde e até a data antes da comparação para obter resultados precisos
fonte
Gosto do que o Franz disse, porque é o que estou usando: P
fonte
Ou visite este link
fonte
fonte
Espero que isso ajude :)
fonte
Primeiro você divide os valores de duas caixas de entrada usando a função de divisão. em seguida, concate o mesmo na ordem inversa. após a concat nação, analise-o para um inteiro. em seguida, compare dois valores na instrução if. Ex. 1> 20-11-2018 2> 21-11-2018
após dividir e concatar novos valores para comparação 20181120 e 20181121 e depois comparar os mesmos.
fonte
isso deve funcionar
fonte
Se houver garantia de que o formato está correto AAAA / MM / DD e exatamente o mesmo entre os dois campos, você pode usar:
Como uma comparação de string
fonte