IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

ne pas changer la valeur du datepicker when click


Sujet :

JavaScript

Vue hybride

Kagami ne pas changer la valeur du... 16/02/2018, 11h51
mathieu c'est la fonction... 16/02/2018, 12h33
Kagami je ne pense pas que la... 16/02/2018, 12h39
mathieu je n'avais pas compris que... 16/02/2018, 22h58
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Par défaut ne pas changer la valeur du datepicker when click
    Bonjour,
    je cherche comment garder la valeur d'un datepicker lorsque je clique sur le button "Rechercher" :

    Datepicker :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?= $this->escape($this->translate("Du")); ?>: <input maxlength="15" type="text" name="IdDateDeb" id="IdDateDeb" value="<?php echo $this->escape(($this->datedeb)) ?>" onchange="Recherche_Date_Change('0', true);"/>&nbsp;
    Bouton rechercher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" onclick="DoPost(0);" value="<?= $this->escape($this->translate("Rechercher")); ?>" />
    Function du bouton rechercher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
      function DoPost(Reinit) {
            if (Reinit == 0) {
    //            if ((document.getElementById('IdSearchInput').value == 0) && isNaN(document.getElementById('IdSearchText').value)) {
    //                alert('<?php // echo $this->translate("Veuillez saisir un Id de type entier num�rique.")                                                                    ?>');
    //                return false;
                //            }
                if (Validation_Date('IdDateDeb', '<?= $this->translate("de debut") ?>') == false) {
                    return false;
                }
     
                if (Validation_Date('IdDateFin', '<?= $this->translate("de fin") ?>') == false) {
                    return false;
                }
     
                if (Validation_Date_Interval() == false) {
                    return false;
                }
            }
            document.MyForm.action = '<?= $this->url(array('controller' => 'Cap', 'action' => 'listcap'), false, true); ?>/reinit/' + Reinit;
            document.MyForm.submit();
        }
    merci

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 652
    Par défaut
    c'est la fonction "Validation_Date" qui modifie la date ?

  3. #3
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Par défaut
    je ne pense pas que la fonction a un rapport avec mon problème.


    fonction :Validation_Date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    function Validation_Date(p_ID_Champ, Texte_Message) {
            var MaDate = document.getElementById(p_ID_Champ).value;
            if (MaDate.Trim() == '') {
                alert('<?= $this->translate("veuillez selectionner une date ") ?>' + Texte_Message + '<?= $this->translate(" (format jj/mm/aaaa).") ?>');
                document.getElementById(p_ID_Champ).value = '';
                return false;
            }
     
            var date_regexp = /^(\d{1,2}\/){2}\d{4}$/;
            if (!MaDate.match(date_regexp)) {
                alert('<?= $this->translate("veuillez entrer une date ") ?>' + Texte_Message + '<?= $this->translate(" valide (format jj/mm/aaaa).") ?>');
                document.getElementById(p_ID_Champ).value = '';
                return false;
            }
            var TabDate = MaDate.split('/');
            var DateSaisie = new Date(TabDate[2], TabDate[1] - 1, TabDate[0]);
     
            var jour = new String(DateSaisie.getDate());
            var mois = new String(DateSaisie.getMonth());
            var annee = new String(DateSaisie.getFullYear());
            var DateComparaison = new Date(annee, mois, jour);
     
            if (DateSaisie.toLocaleString() != DateComparaison.toLocaleString()) {
                //alert('veuillez entrer une date ' + Texte_Message + ' valide.\nSaisie='+MaDate+'\nDateReassembl�e='+DateSaisie+'\nDateComparaison='+DateComparaison);
                alert('<?= $this->translate("veuillez entrer une date ") ?>' + Texte_Message + '<?= $this->translate(" valide.") ?>');
                document.getElementById(p_ID_Champ).value = '';
                return false;
            }
     
            return true;
        }

    je rappelle que j'ai aussi une fonction dans mon document.ready et c'est sûrement de là où vient le souci sauf que je ne sais pas comment faire autrement , du coup je cherche une méthode à part qui ne changera pas la valeur du datepicker au chargement de la page(lors du clique du rechercher)
    fonction Recherche_Date_Change:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function Recherche_Date_Change(id, bMaj) {
            var DateSaisie = '';
            if (id == 0) {
                if (!Validation_Date('IdDateDeb', '<?= $this->translate("de d�but") ?>'))
                    return false;
                DateSaisie = $('#IdDateDeb').val();
            } else {
                return false;
                if (!Validation_Date('IdDateFin', '<?= $this->translate("de fin") ?>'))
                    return false;
                DateSaisie = $('#IdDateFin').val();
            }
     
            var TabDate = DateSaisie.split('/');
            var DateSaisie = new Date(TabDate[2], TabDate[1] - 1, TabDate[0]);
     
            if (bMaj) {
                if (id == 0) {
                    DateMaj = Date.Format(Date.DateAdd('d', +31, DateSaisie), 'DD/MM/YYYY');
                    disabled_date_after =  Date.DateAdd('d', +31, DateSaisie), 'DD/MM/YYYY';
                    disabled_date_before =  Date.DateAdd('d', 0, DateSaisie), 'DD/MM/YYYY';
                    function noBeforeAfter(date){
                        if (date > disabled_date_after ||  date < disabled_date_before  ){
                        return [false];
                        }
                        return [true];
                    }
                /* create datepicker & timepicker*/ 
                $('#IdDateFin').datepicker({
                    changeMonth: true,
                    changeYear: true,
                    showOn: 'button',
                    buttonImage: '<?php echo $this->baseUrl(); ?>/images/calendar.gif',
                    buttonImageOnly: true,
                    dateFormat: 'dd/mm/yy',
                    beforeShowDay:  noBeforeAfter
                });
                    $('#IdDateFin').val(DateMaj);
                } else {
                    DateMaj = Date.Format(Date.DateAdd('d', 'm', DateSaisie), 'DD/MM/YYYY');
                    $('#IdDateDeb').val(DateMaj);
                }
            }
            return true;
        }

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 652
    Par défaut
    je n'avais pas compris que c'est à l'envoi du formulaire que la date change.
    dans ce cas, vous devez envoyer la date souhaite comme paramètre du formulaire et comme ça au chargement de la page, vous testez si le paramètre existe et vous redéfinissez la date.

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/05/2017, 08h48
  2. Réponses: 5
    Dernier message: 09/12/2011, 00h05
  3. impossible de changer la valeur d'un hidden...
    Par Palmic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 31/05/2005, 12h06
  4. Changer la valeur sélectionnée d'un <select> en javasc
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/02/2005, 15h53
  5. Changer la valeur de la MTU sur un LAN
    Par nin2 dans le forum Réseau
    Réponses: 3
    Dernier message: 19/02/2005, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo