Insérer l'heure dans une zone texte via l'évènement onclick [Résolu]

Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
1 décembre 2012
- - Dernière réponse : PetoleTeam
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
- 24 avril 2010 à 10:51
Bonjour à tous,

je cherche en vains une fonction qui me permet d'insérer l'heure via un onclick dans une zone input.
En effet, j'ai un formulaire avec lequel j'effectue des accueils de sous-traitants. Je dois encoder son heure d'entrée et son heure de sortie.
Il y a 10 zones heures d'entrées et 10 pour les sorties.
Afin de faciliter l'encodage j'aimerais que en cliquant sur la zone, l'heure s'insère automatiquement.
J'ai trouvé une fonction heure. mais je ne parviens pas à exécuter l'évènement onclick.
Bout de code ci dessous:

<script>
function showTime()
{
var myDate = new Date();
var time = myDate.getTime();
var hour = myDate.getHours();
var minute = myDate.getMinutes();
var second = myDate.getSeconds();
if (hour < 10) { hour = "0" + hour; }
if (minute < 10) { minute = "0" + minute; }
if (second < 10) { second = "0" + second; }
var theDate = " " + hour + ":" + minute + ":" + second;
document.all('hourPanel').innerHTML=theDate;
setTimeout("showTime();",1000);
}
</script>

et dans mon body :



Avez-vous une idée ou une indication sur ce qui cloche ?
Merci pour votre aide.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
1694
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2019
38
3
Merci
onclick = "showTime('HE1');"/>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 144 internautes nous ont dit merci ce mois-ci

Commenter la réponse de @karamel
Messages postés
1694
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2019
38
0
Merci
document.all('hourPanel').innerHTML=theDate; 


remplace le par

document.getElementById('HE1').value=theDate
Commenter la réponse de @karamel
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
1 décembre 2012
0
Merci
Merci Kazma,

effectivement, ça fonctionne sauf que l'heure est dynamique dans ma zone. j'ai retiré la ligne de mise à jour car l'heure doit être figée au moment ou on clique.
Super pour cette réponse si rapide d'autant que je cherche depuis un moment.
Cependant ( et oui désolé ) un problème en engendre un autre...
En sachant que j'ai 10 zones d'heures séparées, comment faire pour donner l'heure à tout moment mais sans perturber les autres zones.
A partir du script, j'ai ajouté ta solution + document.getElementById('HS1').value=theDate
Je me suis dis que en ajoutant ces 10 lignes le système allait réagir indépendemment.
Ce qu'il se passe c'est que quand je clique sur la zone HE1, elle est alimentée de l'heure ainsi que la zone HS2. Ce que je ne veux pas puisque je gère des entrées et sorties différentes. Idem quand je clique sur la zone HS2, le HE1 prend l'heure de la HE2.
Je ne dois quand même pas écrire 20 fonctions différentes ?

As-tu une indication ?

Merci
Commenter la réponse de ecolom
Messages postés
1694
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2019
38
0
Merci
alimente la fonction par l'id concerné
function showTime(elementcible)
{
var myDate = new Date();
var time = myDate.getTime();
var hour = myDate.getHours();
var minute = myDate.getMinutes();
var second = myDate.getSeconds();
if (hour < 10) { hour = "0" + hour; }
if (minute < 10) { minute = "0" + minute; }
if (second < 10) { second = "0" + second; }
var theDate = " " + hour + ":" + minute + ":" + second;
document.getElementById(elementcible).value=theDate
} 


 
 
...etc
Commenter la réponse de @karamel
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
1 décembre 2012
0
Merci
Commenter la réponse de ecolom
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
1 décembre 2012
0
Merci
Cela ne focntionne pas.
mes zones sont :
<input type="text" name="HE1" id="HE1" size="8" style="background-color: #CCCCCC"...
<input type="text" name="HS1" id="HS1" size="8" style="background-color: #CCCCCC"...
<input type="text" name="HE2" id="HE2" size="8" style="background-color: #CCCCCC"...
<input type="text" name="HS2" id="HS2" size="8" style="background-color: #CCCCCC"...etc...

Quand j'applique ta solution, les zones ne sont plus du tout alimentées.
Je suppose qu'il manque quelque chose ?

Je continue mes tests mais si tu remarques une anomalie, je suis preneur.

Merci
Commenter la réponse de ecolom
Messages postés
1694
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
17 mai 2019
38
0
Merci
j'ai fait une erreur dans ce je j'ai mis oublier les guillemets

onclick = "showTime("HE1");"/>
Commenter la réponse de @karamel
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
1 décembre 2012
0
Merci
Merci Kazma.
cela fonctionne maintenant.
Commenter la réponse de ecolom
Messages postés
3435
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
9
0
Merci
Bonjour à vous,
pourquoi passer l'ID pour récupérer l'objet dans la fonction et pas l'objet directement
et dans la fonction

function showTime( this_){
  // le code ici...
  this_.value = theDate;
} 
cela ne marchera pas mieux mais bon...!
;O)
Commenter la réponse de PetoleTeam