J'ai un formulaire avec Gravity Forms dans WordPress, ce formulaire a 2 datepickers: Date d'arrivée et date de départ, mais je veux que lorsque le client sélectionne une date dans la date de check-in, automatiquement la date de départ mise à jour avec un jour après la date d'arrivée, donc, ce que j'ai fait sans résultat:Dates de début et de fin avec Datepicker jQuery et Gravity Forms
D'abord j'ai ajouté une fonction dans mon functions.php
de mon thème :
/**
* Gravity Forms Datepicker Changes
*/
function my_scripts_method() {
wp_register_script('my-js-file',
get_template_directory_uri() . '/js/my-js.js',
array('jquery'),
'1.0',
false);
wp_enqueue_script('my-js-file');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
Puis je crée un dossier dans mon thème appelé /js
et aussi je crée un fichier appelé my-js.js
, Dans lequel j'ai ce code:
jQuery.noConflict();
jQuery(document).ready(function ($)) {
$('#input_7_1').datepicker({
changeMonth: true,
onSelect: function (selectedDate) {
$('#input_7_5').datepicker('option', 'minDate', selectedDate);
}
});
$('#input_7_5').datepicker({
changeMonth: true,
onSelect: function (selectedDate) {
$('#input_7_1').datepicker('option', 'maxDate', selectedDate);
}
});
});
Mais le problème est qu'il n'y a pas d'effet dans mes datepickers, rien ne change, aucune idée pourquoi est-ce qui se passe?
Il ya une autre chose étrange, si les formes de gravité ont ce fichier: datepicker.js
et si je supprime tout là, rien ne change, ou si changer une valeur, il n'y a pas non plus de changements. c'est le code dans ce fichier:
jQuery(document).ready(gformInitDatepicker);
function gformInitDatepicker(){
jQuery('.datepicker').each(
function(){
var element = jQuery(this);
var format = "mm/dd/yy";
if(element.hasClass("mdy"))
format = "mm/dd/yy";
else if(element.hasClass("dmy"))
format = "dd/mm/yy";
else if(element.hasClass("dmy_dash"))
format = "dd-mm-yy";
else if(element.hasClass("dmy_dot"))
format = "dd.mm.yy";
else if(element.hasClass("ymd_slash"))
format = "yy/mm/dd";
else if(element.hasClass("ymd_dash"))
format = "yy-mm-dd";
else if(element.hasClass("ymd_dot"))
format = "yy.mm.dd";
var image = "";
var showOn = "focus";
if(element.hasClass("datepicker_with_icon")){
showOn = "both";
image = jQuery('#gforms_calendar_icon_' + this.id).val();
}
element.datepicker({ yearRange: '-100:+20', minDate: +10, maxDate: "+24M +30D", showOn: showOn, buttonImage: image, buttonImageOnly: true, dateFormat: format, changeMonth: false, changeYear: false, showAnim: 'slideDown', duration: 'slow' }).attr('readonly','readonly');
}
);
}
pourrait être l'autre code datepicker est en cours d'exécution après le vôtre – charlietfl
, comment puis-je faire en sorte à ce sujet ?, il y a un fichier dans la gravité formes plug-in où tout autre code est appliqué à tous datepickers – GTCR
regard dans le source de la page et voir si c'est vrai en premier. Peut-être aussi besoin d'utiliser la méthode 'destroy' avant de déclarer de nouveaux paramètres. Ou simplement passer de nouvelles options et ne pas les initialiser si elles sont déjà initialisées – charlietfl