Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1342 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Evènements javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Evènements javascript

n°803922
Clapsou
Posté le 23-07-2004 à 03:37:19  profilanswer
 

Quel est l'évènement qui permet d'appeler une fonction seulement quand on clique sur un bouton radio qui n'était pas encore checked ? Parce que Onclick ça prend en compte tous les clics sur le bouton radio, y compris si le bouton est déjà sélectionnée! Oncheck ça existe ?
Merci

mood
Publicité
Posté le 23-07-2004 à 03:37:19  profilanswer
 

n°803959
arma
Bad day...
Posté le 23-07-2004 à 09:10:08  profilanswer
 

tu pe pas faire un onclick et dans la fonction faire un if radio.checked ... else ne rien faire ?

n°804346
Clapsou
Posté le 23-07-2004 à 13:13:40  profilanswer
 

arma a écrit :

tu pe pas faire un onclick et dans la fonction faire un if radio.checked ... else ne rien faire ?


 
J'ai essayé de faire ça mais ça ne marche pas :
 
entre <HEAD> et </HEAD> :
 
<script langage="javascript">
function afficher()
{
  var a = document.getElementById("dest" );
  var m = document.getElementById("aff" );
if (document.form1.salut.value == 1)
{
    a.style.display = "block";
    m.style.display = "block";
}
else
{
if (document.form1.salut.value == 2)
{
 a.style.display = "none";
 m.style.display = "none";
}
}  
}
</script>
 
et dans mon body :
Message VIP :
<input type=radio name="salut" value="1" OnClick="javascript:afficher();">
<span id=aff style="display: none">à envoyer à :</span><?
 
$sql = mysql_query("SELECT * FROM inscrits ORDER BY nom" );
$nbl = mysql_num_rows($sql);
                ?>
                <select name=dest id=dest style="display: none" class=form>
                <?
for ($i=0 ; $i<$nbl ; $i++)
                {
$id_dest = mysql_result($sql,$i,id_inscrit);
if ($id_dest != $id_inscrit)
{
$nom = mysql_result($sql,$i,nom);
$prenom = mysql_result($sql,$i,prenom);
                ?>
                <option value="<? echo $id_dest ?>"><? echo $nom." ".$prenom ?></option>
                <?
}
                }
?>
                </select>
<br>
Message public : <input type=radio name="salut" value="2" OnClick="javascript:afficher();">
 
Et ça ne marche pas, il ne m'affiche jamais la liste déroulante alors que lorsque je faisais une condition avec
if (a.style.display == "none" ) { a.style.display = "block"; }
else {
if (a.style.display == "none" ) { a.style.display = "none"; }
}
ça marchait très bien seulement si l'on reclique sur le même bouton radio et bien on réefface la liste déroulante et vise versa donc ça ne va pas


Message édité par Clapsou le 23-07-2004 à 13:36:27
n°804413
Bysounours
Posté le 23-07-2004 à 14:03:10  profilanswer
 

et  avec onFocus a la place onClick ?
 
Je viens de tester vite fait a apriori ca fonctionne...

n°804433
Clapsou
Posté le 23-07-2004 à 14:14:39  profilanswer
 

Bysounours a écrit :

et  avec onFocus a la place onClick ?
 
Je viens de tester vite fait a apriori ca fonctionne...


 
Ca fonctionne que si tu ne clique pas ailleurs entre deux clic sur le bouton radio. Clique n'importe ou dans la page et reclic sur le même bouton radio, ça va faire comme si ce n'était pas le même et il efface la liste :/

n°804453
Bysounours
Posté le 23-07-2004 à 14:33:04  profilanswer
 

c'est possible. J'ai testé en affichant les lignes d'un taleau, donc forcement quand je clique sur 'oui' il me l'affiche, meme si je clique 15 fois dessus, Forcement j'ai pas vu la différence.
 
C'est pour ca que je pensais que ca fonctionnait. J'ai pas d'autre idée, désolé...

n°804461
Clapsou
Posté le 23-07-2004 à 14:37:00  profilanswer
 

Bysounours a écrit :

c'est possible. J'ai testé en affichant les lignes d'un taleau, donc forcement quand je clique sur 'oui' il me l'affiche, meme si je clique 15 fois dessus, Forcement j'ai pas vu la différence.
 
C'est pour ca que je pensais que ca fonctionnait. J'ai pas d'autre idée, désolé...


 
Ben en fait je pense qu'il faudrait faire en testant la valeur du bouton radio comme j'ai dit mais je comprend pas pourquoi ça ne fonctionne pas ça
 
if (document.form1.salut.value == 1)  
{  
    a.style.display = "block";  
    m.style.display = "block";  
}  
else  
{  
if (document.form1.salut.value == 2)  
{  
 a.style.display = "none";  
 m.style.display = "none";  
}  
}  


Message édité par Clapsou le 23-07-2004 à 14:37:55
n°804470
mathix
mathix@jabber.org
Posté le 23-07-2004 à 14:39:45  profilanswer
 

c'est parce que tu accèdes mal aux valeurs des boutons radio
regarde sur ma page le code javascript du test 10:
http://membres.lycos.fr/mathixjs/test.htm?#test10

n°804491
Bysounours
Posté le 23-07-2004 à 14:47:23  profilanswer
 

Clapsou a écrit :


if (document.form1.salut.value == 1)  
{  
    a.style.display = "block";  
    m.style.display = "block";  
}  
else  
{  
if (document.form1.salut.value == 2)  
{  
 a.style.display = "none";  
 m.style.display = "none";  
}  
}


 
je dis peut-etre une connerie mais ca serait pas true ou false les valeurs ?
 
esaye avec ca:


if (document.form1.salut.checked==true)
{  
    a.style.display = "block";  
    m.style.display = "block";  
}  
else  
{  
if (document.form1.salut.checked==false)  
{  
 a.style.display = "none";  
 m.style.display = "none";  
}  


 


Message édité par Bysounours le 23-07-2004 à 14:48:25
n°804505
Clapsou
Posté le 23-07-2004 à 14:54:11  profilanswer
 

mathix a écrit :

c'est parce que tu accèdes mal aux valeurs des boutons radio
regarde sur ma page le code javascript du test 10:
http://membres.lycos.fr/mathixjs/test.htm?#test10


 
Dsl je n'ai pas compris comment tu fais pour ton test 10 car toi tu vérifies si l'un des bouton radio du nom Radio10 est sélectionné alors que moi je fais une condition sur la valeur du bouton radio :/
 
J'ai testé ça ça ne marche pas non plus :
 
<script langage="javascript">
function afficher()
{
  var a = document.getElementById("dest" );
  var m = document.getElementById("aff" );
  var c = document.getElementByName("salut" );
 
if (c.value == "1" )
{
    a.style.display = "block";
    m.style.display = "block";
}
else
{
 
if (c.value == "2" )
{
 a.style.display = "none";
 m.style.display = "none";
}
}  
 
}
 
</script>
 

mood
Publicité
Posté le 23-07-2004 à 14:54:11  profilanswer
 

n°804511
Clapsou
Posté le 23-07-2004 à 14:55:31  profilanswer
 

Bysounours a écrit :

je dis peut-etre une connerie mais ca serait pas true ou false les valeurs ?
 
esaye avec ca:


if (document.form1.salut.checked==true)
{  
    a.style.display = "block";  
    m.style.display = "block";  
}  
else  
{  
if (document.form1.salut.checked==false)  
{  
 a.style.display = "none";  
 m.style.display = "none";  
}  



 
Ouais mais vu que les boutons radio s'apellent forcemment tous les deux salut ça sera toujours true jpense :/

n°804527
Bysounours
Posté le 23-07-2004 à 15:02:51  profilanswer
 

Oauis j'avais pas fait gaffe à leur nom.
 
Et si tu crée 2 fonctions, une qui affiche et une qui masque ?
<input type=radio name="salut" value="1" OnClick="javascript:afficher();">  
<input type=radio name="salut" value="2" OnClick="javascript:masquer();">  
 
et comme fonctions :
 
function afficher()  
{  
  var a = document.getElementById("dest" );  
  var m = document.getElementById("aff" );  
if (document.form1.salut.value == 1)  
{  
    a.style.display = "block";  
    m.style.display = "block";  
}  
}  
 
 
function masquer()  
{  
  var a = document.getElementById("dest" );  
  var m = document.getElementById("aff" );  
if (document.form1.salut.value == 2)  
{  
 a.style.display = "none";  
 m.style.display = "none";  
}  
}  
 
je pense que ca peut marcher et tu peux meme virer le if a mon avis.

n°804534
Clapsou
Posté le 23-07-2004 à 15:07:45  profilanswer
 

Bysounours a écrit :

Oauis j'avais pas fait gaffe à leur nom.
 
Et si tu crée 2 fonctions, une qui affiche et une qui masque ?
<input type=radio name="salut" value="1" OnClick="javascript:afficher();">  
<input type=radio name="salut" value="2" OnClick="javascript:masquer();">  
 
et comme fonctions :
 
function afficher()  
{  
  var a = document.getElementById("dest" );  
  var m = document.getElementById("aff" );  
if (document.form1.salut.value == 1)  
{  
    a.style.display = "block";  
    m.style.display = "block";  
}  
}  
 
 
function masquer()  
{  
  var a = document.getElementById("dest" );  
  var m = document.getElementById("aff" );  
if (document.form1.salut.value == 2)  
{  
 a.style.display = "none";  
 m.style.display = "none";  
}  
}  
 
je pense que ca peut marcher et tu peux meme virer le if a mon avis.


 
Bravo chef tu as trouvé la solution!  :jap:  Trop merci  :hello:

n°804540
Bysounours
Posté le 23-07-2004 à 15:10:09  profilanswer
 

Mais de rien, ca m'a occupé un peu au boulot cet ap midi !

n°804543
Clapsou
Posté le 23-07-2004 à 15:11:38  profilanswer
 

Bysounours a écrit :

Mais de rien, ca m'a occupé un peu au boulot cet ap midi !


Y a même plus besoin du if comme ça c'est réglé:
 
<script langage="javascript">
function afficher()
{
  var a = document.getElementById("dest" );
  var m = document.getElementById("aff" );
   
    a.style.display = "block";
    m.style.display = "block";
}
 
function masquer()  
{  
  var a = document.getElementById("dest" );  
  var m = document.getElementById("aff" );  
 a.style.display = "none";  
 m.style.display = "none";  
}  
</script>
 
Des fois les choses les plus simples ne nous sautent pas aux yeux! ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Evènements javascript

 

Sujets relatifs
Javascript : Menu arborescant style windowsinsertion de javascript dans du php ?!?
Intro en javascript (puzzle qui s'efface)redirection javascript - recuperation session php
Mise en mémoire d'évènements midi : HashMap ?[Javascript] : 2 événements sur un onclick [a y est résolu]
[Javascript / IE] capturer tous les évènements d'une WINDOWErreur javascript sur les evenements (urgent)
[JAVASCRIPT] problème avec les événements....JAVASCRIPT / évènements CLAVIER
Plus de sujets relatifs à : Evènements javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR