11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour, j'ai activé le bouton d'apparition du calendrier datepicker:
paramètre showOn: "button"
ceci afin d'avoir un bouton pour faire apparaitre le calendrier sachant que dans le même temps j'ai interdit l'activation du champ input contenant les dates :

  <p><center>Date: <input type="maDate" id="datepicker" disabled="disabled"></center></p>



  $( function() {
	
    $( "#datepicker" ).datepicker({monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
				   monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],
				   dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
				   dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],
				   dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
				   dateFormat: 'dd-mm',				  
				   prevText: 'Précédent',
				   nextText: 'Suivant',
				   firstDay : 1,
				   showOn: "button"
				   								
				   });
    
  } );


Le bouton apparait bien (et fonctionne) mais il y a 3 points dedans j'aurais souhaité remplacer ces points par un texte Voir même une image d'un calendrier...
Est-ce possible?
upload/1668623110-84624-capturedancran2022-11-1619235.png
Merci
Modifié par mgnthe54 (16 Nov 2022 - 20:03)
Merci et il y a aussi l'option buttonimage pour mettre en place une image !
Super merci
je ne les retrouvaient plus je les avais aperçu un moment puis...

Par contre je n'arrive pas à aligner mon gif avec le champ input :
upload/1668674240-84624-capturedancran2022-11-1709354.png

Est-ce possible?

<script>
  $( function() {
	
    $( "#datepicker" ).datepicker({monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
				   monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],
				   dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
				   dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],
				   dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
				   dateFormat: 'dd-mm',				  
				   prevText: 'Précédent',
				   nextText: 'Suivant',
				   firstDay : 1,
				   showOn: "button",
				   buttonImageOnly: true,
				   buttonText:"Choisir la date",
				   buttonImage: "/images/datepicker.gif"								
				   });
    
  } );
</script>


Alors que si je rajoute le bouton (enlever l'option buttonImageOnly: true,) j'obtiens bien le bouton aligné sur le top :
upload/1668675818-84624-capturedancran2022-11-1710014.png
Merci
Modifié par mgnthe54 (17 Nov 2022 - 10:03)
a écrit :
Par contre je n'arrive pas à aligner mon gif avec le champ input

Il faudrait pouvoir examiner le html généré pour savoir comment traiter ce problème.

- En ajoutant des display: inline-block; vertical-align:middle; par exemple
ou avec du flex ...

Y-a-t-il une url où ton travail est visible? ou bien avec codepen ou jsfiddle.
Modifié par loicbcn (17 Nov 2022 - 12:47)
Alors apparemment effectivement le code ccs pourrait être la solution.
Le seul soucis pour le moment, c'est que les modifications touchent tous les types boutons je n'arrive pas à viser uniquement celui de datepicker!

.container1 {	
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items:center;
    flex-basis: content;
}

button,
.button {box-shadow: inset 0 0 0 2px #0349fe; // juste pour visualiser le bouton provisoirement
         margin-top:50px;
         margin-left:-75px;
        }


  <div class="container1">
  <p>Date: <input type="maDate" id="datepicker" disabled="disabled" ></p>	
  </div>


voici le rendu :
upload/1668686887-84624-capturedancran2022-11-1713072.png

Merci
Sinon je peux te donner l'adresse de ma page test mais elle est vraiment de test....
Modérateur
Salut,


Forcément avec un sélecteur "button" tu va cibler tout les button. Rend le plus spécifique en fonction d'un parent unique genre container1 par exemple si le bouton généré est bien dedans (comme l'a bien dit loicbcn : "Il faudrait pouvoir examiner le html généré pour savoir comment traiter ce problème")
Modifié par _laurent (17 Nov 2022 - 14:59)
Ok voici le code généré :

<!DOCTYPE HTML>
<!--
	Editorial by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html lang="fr">

	<head>
		<title>Administration</title>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
		<link rel="stylesheet" href="assets/css/main.css">
		<link rel="stylesheet" href="assets/css/mon_css.css">

				<!-- insertion code jquery du calendrier -->
		<link rel="stylesheet" href="//code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
		<script src="https://code.jquery.com/jquery-3.6.0.js"></script> 
		<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>	

	</head>	
		
	 <script>
		 
  $( function() {
	
    $( "#datepicker" ).datepicker({monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
				   monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],
				   dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
				   dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],
				   dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
				   dateFormat: 'dd-mm',				  
				   prevText: 'Précédent',
				   nextText: 'Suivant',
				   firstDay : 1,
				   showOn: "button",
				 //  buttonImageOnly: true,
				   buttonText:"Choisir la date",
				   buttonImage: "/images/datepicker.gif"								
				   });
    
  } );
  </script>
  
  <form method="GET" action="test1.php" >	
	  
  <div class="container1">
  <p>Date: <input type="maDate" id="datepicker" name="Datepicker"></p>	
  <script>
document.getElementById("datepicker").value = "04-10";

</script>
		
  </div>
           
       heure début surveillance essaimage primaire : <input type="time" id="wakeup" name="horloge"value ="10:00" >
    
    
      <button type="submit">Récupérer la valeur</button>  
			
			<script src="assets/js/mon_javascript.js"></script> <!--fichier contenant mes fonctions javaScript-->		
		
  </form>				
	</body>
</html>	


voici le code source :

<!DOCTYPE HTML>
<!--
	Editorial by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html lang="fr">

	<head>
		<title>Administration</title>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
		<link rel="stylesheet" href="assets/css/main.css">
		<link rel="stylesheet" href="assets/css/mon_css.css">

				<!-- insertion code jquery du calendrier -->
		<link rel="stylesheet" href="//code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
		<script src="https://code.jquery.com/jquery-3.6.0.js"></script> 
		<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>	

	</head>	
		
	 <script>
		 
  $( function() {
	
    $( "#datepicker" ).datepicker({monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
				   monthNamesShort: ['Janv.', 'Févr.', 'Mars', 'Avril', 'Mai', 'Juin', 'Juil.', 'Août', 'Sept.', 'Oct.', 'Nov.', 'Déc.'],
				   dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
				   dayNamesShort: ['Dim.', 'Lun.', 'Mar.', 'Mer.', 'Jeu.', 'Ven.', 'Sam.'],
				   dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
				   dateFormat: 'dd-mm',				  
				   prevText: 'Précédent',
				   nextText: 'Suivant',
				   firstDay : 1,
				   showOn: "button",
				 //  buttonImageOnly: true,
				   buttonText:"Choisir la date",
				   buttonImage: "/images/datepicker.gif"								
				   });
    
  } );
 
  </script>
   
 <?php
    	include "connexion.php";	//insertion des codes d'accès à la base
	include "/var/www/html/fonctions.php"; // insertion des fonctions
	 
$heureDebutPrimaire=getOption( $bdd, "Heure_Debut_Primaire" ) ;
$dateDebutPrimaire = getOption( $bdd, "Date_Debut_Primaire" ) ;
?>
 <br>		   
  <br>
  <br>
   <br>
  <br>
  <br>
  
  <form method="GET" action="test1.php" >	
	  
  <div class="container1">
  <p>Date: <input type="maDate" id="datepicker" name="Datepicker"></p>	

  <script>
document.getElementById("datepicker").value = "<?php echo $dateDebutPrimaire; ?>";

</script>
  <br>
  <br>
  <br>

  </div>
       
       
       heure début surveillance essaimage primaire : <input type="time" id="wakeup" name="horloge"value ="<?php echo $heureDebutPrimaire; ?>" >
    

    
      <button type="submit">Récupérer la valeur</button>

 
			
			<script src="assets/js/mon_javascript.js"></script> <!--fichier contenant mes fonctions javaScript-->		
		
  </form>				
	</body>
</html>	

Et donc mon code actuel qui n'est pas spécifique au bouton de datepicker et donc touche tous les boutons :

.container1 {	
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items:center;
    flex-basis: content;
}

button,
.button {box-shadow: inset 0 0 0 2px #0349fe;
         margin-top:50px;
         margin-left:-75px;
        }

Merci
et comme je l'ai dit si cela peut aider je peux vous envoyer en MP l'adresse du site...
Modérateur
mmmmmmmm y'a pas de bouton généré ? Oui avoir ton url ca peut nous aider mais pourquoi ne pas la mettre ici ? Sinon en MP oui si ca te dérange.

Et sinon a propos de ma remarque sur le sélecteur CSS tu as tenté un truc ? J'aurais pas grand chose a dire de plus.
Bonjour,

Utilise plutôt l'Inspecteur d'élément dans les outils de développement de ton navigateur pour voir le code source généré par javascript, tu devrais voir que le bouton du datepicker généré par jQueryUI possède une classe css "ui-datepicker-trigger".
https://jsfiddle.net/qa6fmnwy/
Meilleure solution
Merci à tous Pitet à trouvé la solution pour pointer uniquement sur le bouton de datepicker (comme me l'avait justement suggérer Laurent) mais je ne connaissais pas le nom de la class CSS du bouton de datepicker!
Avec ceci :

.ui-datepicker-trigger
 {box-shadow: inset 0 0 0 2px #0349fe;
         margin-top:50px;
         margin-left:-75px;
        }

Du coup j'ai bien ce que je souhaitais (il me reste juste à enlever le box-shadow et bien non à le positionner comme ceci: box-shadow: inset 0 0 0 0px #0349fe; car sinon c'est le code css des boutons "généraux" de mon main.css qui reprend le dessus et me redessine un cadre vert autour de l'image...)
upload/1668704966-84624-capturedancran2022-11-1718082.png

Merci encore à tous
Modifié par mgnthe54 (17 Nov 2022 - 18:20)
Voici un lien vers mon site sur Raspberry, j'ai modifié spécialement pour vous mon menu afin de permettre un accès à ma page test (tout en bas du menu) sans avoir à passer par la page administrateur qui est normalement verrouillée si j'ai bien bossé)
Vous trouverez un petit remerciement à votre forum sur la page l'apiculteur et ce site.
Voilà vous pouvez-toujours me dire ce que vous en pensez.
Merci encore pour tout!

http://gilles54.no-ip.biz/