Insérer l'heure dans une zone texte via l'évènement onclick

Résolu
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012 - 22 avril 2010 à 11:04
PetoleTeam Messages postés 3426 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.
A voir également:

9 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
22 avril 2010 à 15:22
onclick = "showTime('HE1');"/>
3
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
22 avril 2010 à 11:39
document.all('hourPanel').innerHTML=theDate; 


remplace le par

document.getElementById('HE1').value=theDate
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
22 avril 2010 à 12:10
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
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
22 avril 2010 à 12:53
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
22 avril 2010 à 13:15
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
22 avril 2010 à 13:20
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
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
22 avril 2010 à 15:20
j'ai fait une erreur dans ce je j'ai mis oublier les guillemets

onclick = "showTime("HE1");"/>
0
ecolom Messages postés 68 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 1 décembre 2012
22 avril 2010 à 17:25
Merci Kazma.
cela fonctionne maintenant.
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
24 avril 2010 à 10:51
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)
0
Rejoignez-nous