Evènements javascript

Evènements javascript - HTML/CSS - Programmation

Marsh Posté le 23-07-2004 à 03:37:19    

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

Reply

Marsh Posté le 23-07-2004 à 03:37:19   

Reply

Marsh Posté le 23-07-2004 à 09:10:08    

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

Reply

Marsh Posté le 23-07-2004 à 13:13:40    

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
Reply

Marsh Posté le 23-07-2004 à 14:03:10    

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

Reply

Marsh Posté le 23-07-2004 à 14:14:39    

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 :/

Reply

Marsh Posté le 23-07-2004 à 14:33:04    

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é...

Reply

Marsh Posté le 23-07-2004 à 14:37:00    

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
Reply

Marsh Posté le 23-07-2004 à 14:39:45    

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

Reply

Marsh Posté le 23-07-2004 à 14:47:23    

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
Reply

Marsh Posté le 23-07-2004 à 14:54:11    

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>
 

Reply

Marsh Posté le 23-07-2004 à 14:54:11   

Reply

Marsh Posté le 23-07-2004 à 14:55:31    

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 :/

Reply

Marsh Posté le 23-07-2004 à 15:02:51    

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.

Reply

Marsh Posté le 23-07-2004 à 15:07:45    

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:

Reply

Marsh Posté le 23-07-2004 à 15:10:09    

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

Reply

Marsh Posté le 23-07-2004 à 15:11:38    

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! ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed