Pergunta sobre Smart Forms – quando você precisa de mais do que apenas um formulário de contato do WordPress: Validação do selecionador de data

Um usuário perguntou ?

Olá…

Tenho dois campos de compromisso no meu formulário: Data de chegada e Data de partida

Preciso do formulário para validar o seguinte:

– A data de partida não deve ser anterior à data de chegada (ou seja, a data de chegada 1/1/18 e a data de partida 30/12/17 não podem ser inseridas). Idealmente, o selecionador deve selecionar uma data de partida antes da data de chegada.

– A data de chegada não deve ser anterior à data atual (ou seja, se um usuário estiver no site em 30/05/17, ele não poderá selecionar uma data de chegada/saída antes dessa data)

Obrigado!!

(@edgarrojas)

3 anos, 4 meses atrás

Olá!

Desculpe, não há como desabilitar as datas da interface do usuário, mas isso pode ser feito com javascript (isso pode ser adicionado na seção javascript do seu formulário). algo assim:

rnJQuery('#arrivaldate input').change(function(){
rnJQuery( "#departuredate input” ).datepicker('option', 'minDate', rnJQuery( "#arrivaldate input" ).datepicker("getDate"));
});

para desabilitar todas as datas antes da data de chegada, para desabilitar todas as datas antes de hoje você pode adicionar isto:

rnJQuery( '#arrivaldate input' ).datepicker('option', 'minDate',0);

Então, no final, seu js deve ficar assim:


  //AUTO GENERATED CODE, DO NOT DELETE
(function(){var javaObject={

//YOU CAN PUT YOUR CODE BELLOW

//jQueryFormReference:A jquery reference of the loaded form
AfterFormLoaded:function(jQueryFormReference){
 rnJQuery('#arrivaldate input').change(function(){
rnJQuery( "#departuredate input” ).datepicker('option', 'minDate', rnJQuery( "#arrivaldate input" ).datepicker("getDate"));
rnJQuery( '#arrivaldate input' ).datepicker('option', 'minDate',0); 

});

});
},

//jQueryFormReference:A jquery reference of the loaded form
//formData:An object with the information that is going to be submitted
BeforeFormSubmit:function(formData,jQueryFormReference){
    //Here you can put code that you want to be executed before the form is submitted
}

//MORE AUTO GENERATED CODE, DO NOT DELETE
}; return javaObject;})  

Espero ter ajudado, mas se não me avise!

Esta resposta foi modificada 3 anos, 4 meses atrás por. lançador de tópicos

(@tomematthews)

3 anos, 4 meses atrás

Olá Edgar – muito obrigado pela sua resposta…

Infelizmente, isso não parece estar funcionando. Talvez eu esteja fazendo algo errado, pois não tenho experiência com JS, mas posso escolher datas antes de hoje, e datas de saída antes da data de chegada, e o formulário se encaixa perfeitamente…

Quando clico em Validar abaixo da caixa JS, ele me diz: SyntaxError: Invalid character: ‘#’

Mudei meus nomes de campo para corresponder ao script (data de chegada e data de partida), pois anteriormente eles eram apenas ‘chegada’ e ‘partida’, mas isso não ajudou

Eu apreciaria qualquer ajuda adicional que você pudesse oferecer! Obrigado…

(@edgarrojas)

3 anos, 4 meses atrás

Claro, você poderia me enviar um link para o seu formulário? Eu posso criar o código que você precisa.

lançador de tópicos

(@tomematthews)

3 anos, 4 meses atrás

Olá Edgard…

Existem duas maneiras: e

Muito obrigado!

(@edgarrojas)

3 anos, 3 meses atrás

Se você tiver, tente adicionar isso à parte javascript do seu formulário:

// CÓDIGO GERAL AUTO, NÃO DELETE (function () {var javaObject = {

// POSSO ENVIAR SEU CÓDIGO

// jQueryFormReference: referência jquery do formulário de carregamento AfterFormLoaded: function (jQueryFormReference) {

rnJQuery(‘# entrada de data de chegada’) .datepicker(‘option’, ‘minDate’, 0); rnJQuery(‘# entrada de data de chegada’). change (função () {rnJQuery(‘#departuredate input’) .datepicker(‘option’, ‘minDate’, rnJQuery(‘#arrivaldate input’) .datepicker(‘getDate’));});

},

// jQueryFormReference: Carregando o formulário jquery reference // formData: Algo com as informações para inserir BeforeFormSubmit: function (formData, jQueryFormReference) { // Aqui você pode adicionar o código que deseja executar antes de enviar o formulário para}

// CÓDIGO MAIS GERAL, NÃO}; return javaObject;})

Eu acho que deve fazer o truque =).

lançador de tópicos

(@tomematthews)

3 anos, 3 meses atrás

Isso é perfeito, obrigado!

Isto foi útil?

0 / 0

Deixe uma resposta 0

O seu endereço de email não será publicado. Campos obrigatórios são marcados *