Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de compatibilité Jquery

    15 février 2019 à 13:49:24

    Bonjour , j'ai rencontré un problème  avec mon code Jquery qui ne marche que sur navigateur Safari .Ne fonctionne pas sur Chrome/Firefox.

    J'ai essayé d'apporter de modification , changer de version de Jquery mais rien ne le fait .

    J'aimerai savoir si quelqun pouvait m'aiguillier vers une solutions ou la raison du problème .

    Voici mon code 

    		    </select>
    		  	<div class="dropdown drop pull-right">
    			<button class="btn btn-primary btn-xs dropdown-toggle" type="button" data-toggle="dropdown">Select
    			<span class="caret"></span></button>
    			<ul class="dropdown-menu" >
    			<li >Date :&nbsp;&nbsp;<input name="date" id="date1" class="datepicker w100" type="date" placeholder="Du  jj/mm/aaaa">&nbsp;
                <input name="date2" id="date2" class="datepicker w100" type="date" placeholder="Au jj/mm/aaaa"></li>
    			<li ><a id="date2019"  >2019</a></li>
    			<li><a id="date2018" >2018</a></li>
    			</ul>
    			</div>
    			
    		<script>
    
    		$('#date2019').click(function(){
    			$('#date1').val('01/01/2019');
    			$('#date2').val('31/12/2019');
    		});
    
    		$('#date2018').click(function(){
    			$('#date1').val('01/01/2018');
    			$('#date2').val('31/12/2018');		
    			});
    		
    		</script>
    • Partager sur Facebook
    • Partager sur Twitter
      15 février 2019 à 14:03:47

      Bonjour,

      Les champs de type date ne sont pas supportés par Safari (à vérifier). Lorsqu'un navigateur ne prend pas en charge ce type de champ, il le transforme en champ de type text. Voilà pourquoi ton code fonctionne sur Safari.

      En revanche, il ne fonctionne pas sur les autres navigateurs car tu ne respectes pas le format de date attendu par un champ de type date.

      • Partager sur Facebook
      • Partager sur Twitter
        15 février 2019 à 14:09:29

        Thomas D a écrit:

        Bonjour,

        Les champs de type date ne sont pas supportés par Safari (à vérifier). Lorsqu'un navigateur ne prend pas en charge ce type de champ, il le transforme en champ de type text. Voilà pourquoi ton code fonctionne sur Safari.

        En revanche, il ne fonctionne pas sur les autres navigateurs car tu ne respectes pas le format de date attendu par un champ de type date.


        Merci pour le réponse mais j'ai deja éffectuer la modifications de format de la date et cela ne change rien .
        • Partager sur Facebook
        • Partager sur Twitter
          15 février 2019 à 14:26:31

          JeremyMarin1 a écrit:

          Merci pour le réponse mais j'ai deja éffectuer la modifications de format de la date et cela ne change rien .

          Peux-tu nous partager la modification que tu avais faites s'il te plaît ?
          • Partager sur Facebook
          • Partager sur Twitter
            15 février 2019 à 14:37:59

              ?>
                 </select>
                   <div class="dropdown drop pull-right">
                  <button class="btn btn-primary btn-xs dropdown-toggle" type="button" data-toggle="dropdown">Select
                  <span class="caret"></span></button>
                  <ul class="dropdown-menu" >
                  <li >Date :&nbsp;&nbsp;<input name="date" id="date1" class="datepicker w100" type="date" placeholder="Du jj/mm/aaaa">&nbsp;
            <input name="date2" id="date2" class="datepicker w100" type="date" placeholder="Au jj/mm/aaaa"></li>
                  <li ><a id="date2019" >2019</a></li>
                  <li><a id="date2018" >2018</a></li>
                  </ul>
                  </div>
                <!-- Jquery
                  <script>
                $('#date2019').click(function(){
                  $('#date1').val('01-01-2019');
                  $('#date2').val('31-12-2019');
                });

                $('#date2018').click(function(){
                  $('#date1').val('01-01-2018');
                  $('#date2').val('31-12-2018');    
                  });
                </script> -->
                <script>
            let date1 = document.querySelector('#date1')
            let date2 = document.querySelector('#date2')

            document.querySelector('#date2019').addEventListener('click', () => {
            date1.value = '2019-01-01'
            date2.value = '2019-12-31'
            })

            document.querySelector('#date2018').addEventListener('click', () => {
            date1.value = '2018-01-01'
            date2.value = '2018-12-31'
            })



                    <input type="submit" value="Envoyer" class="pull-rights">
                </form>
                <?php
                $date = $_POST['date'];
              //supprime les espaces en début et fin de saisie
               $date = trim($date);
               //remplace les slashs par des traits-d'union
               $date = ereg_replace("[/]","-", $date);
               //sépare les éléments de la date
               $tabdate = explode('-',$date);
               //format : $timestamp = mktime($heure, $minute, $seconde, $mois, $jour, $annee);
               //affiche le nb de secondes depuis le 01-01-1970
               $ts_date = mktime(0, 0, 0, $tabdate[1], $tabdate[0], $tabdate[2]);
               //mise en forme de la date format MySQL
               $date_mysql = trim(date("Y-m-d", $ts_date)." 00:00:00");
               $date2 = $_POST['date2'];
              //supprime les espaces en début et fin de saisie
               $date2 = trim($date2);
               //remplace les slashs par des traits-d'union
               $date2 = ereg_replace("[/]","-", $date2);
               //sépare les éléments de la date2
               $tabdate2 = explode('-',$date2);
               //format : $timestamp = mktime($heure, $minute, $seconde, $mois, $jour, $annee);
               //affiche le nb de secondes depuis le 01-01-1970
               $ts_date2 = mktime(0, 0, 0, $tabdate2[1], $tabdate2[0], $tabdate2[2]);
               //mise en forme de la date2 format MySQL
               $date2_mysql = trim(date("Y-m-d", $ts_date2)." 00:00:00");

               // test code begin
               $bool_date_set = 1;
               if (strlen($_POST['date']) < 1 && strlen($_POST['date2']) < 1) {
                 $bool_date_set = 0;
               }
               //echo "Date Set : $bool_date_set <br>";
               // test code end

                if (isset($_POST['residence'])) {
                    ?>
            • Partager sur Facebook
            • Partager sur Twitter
              15 février 2019 à 14:46:43

              Si je teste que ton HTML et ton script (le nouveau, avec la correction du format de date), ça fonctionne très bien sur les autres navigateurs.

              PS: je ne regarde pas ton code PHP.

              • Partager sur Facebook
              • Partager sur Twitter
                15 février 2019 à 14:55:53

                Thomas D a écrit:

                Si je teste que ton HTML et ton script (le nouveau, avec la correction du format de date), ça fonctionne très bien sur les autres navigateurs.

                PS: je ne regarde pas ton code PHP.


                Donc cela vient du php surement alors , une mauvaise interpretation de la date . 

                Merci pour le coup d'oeil .

                • Partager sur Facebook
                • Partager sur Twitter

                Problème de compatibilité Jquery

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown