Javascript et liste déroulante

Résolu
Bonjour,

Je souhaite vérifier en javascript que au moins un élement de ma liste deroulante multiple ait été sélectionné... Mais je ne m'en sors pas !!!

Voici mon code pr la vérification :

function select_selected(form){

for (i=0, n=form.elements.length; i<n; i++){
if ((form.elements[i].selected == true))
return true }
return false;

}

Et voici mon code sur ma page web

<form method="post" action="" name="supr_club">
Clubs à supprimer :
<select name="club_supr[]" multiple="true" size="8">
<?php
$select = "select * from clubs order by nom";
$result = mysql_query($select);
while($data = mysql_fetch_array($result)){
echo '<option value="'.$data['id'].'">'.$data['nom'].'</option>';
}
?>
</select> 
<input type="hidden" name="champ" value="<?php echo $champ; ?>">
<input type="hidden" name="asupr" value="asupr">
<input type="button" value="Supprimer" onclick="javascript:select_selected(this.form);">
</form>

Je sature.....Merci de votre aide ;)
Configuration: Windows XP
Firefox 2.0.0.16

3 réponses

  1. ou sinon vu que tu verifie au click, tu peux aussi juste faire:

    function select_selected(form){

    var select = document.getElementById("club_supr");

    verif=false;

    for (i=0; i<select.length; i++)
    {
    if (select.options[i].selected == true)
    verif =true;
    }

    return verif;
    }

    et juste changer:
    <select name="club_supr[]" multiple="multiple" size="8">

    en

    <select id="club_supr" name="club_supr[]" multiple="true" size="8">

    cordialement, dreamfeeder.
    1. Contributeur
      voici ce qui pourrait faire l'affaire:
      function makeXHR(){
      	var xmlHttp;
      	try
      	{
      		// Firefox, Opera 8.0+, Safari
      		xmlHttp=new XMLHttpRequest();
      	}
      	catch (e)
      	{
      		// Internet Explorer
      		try
      		{
      			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      		}
      		catch (e)
      		{
      			try
      			{
      				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      			}
      			catch (e)
      			{
      				alert("Your browser does not support AJAX!");
      				return false;
      			}
      		}
      	}
      	return xmlHttp;
      }
      
      function select_selected(form){
      	var select = form.getElementsByTagName("select")[0];
      	var au_moins_un = false;
      	for (i = 0; i<select.length; i++){
      		if (select.options[i].selected){
      			au_moins_un = true;
      			// ici on peut mettre le code Ajax pour supprimer le club select.options[i].value
      			/*
      			var xhr = makeXHR();
      			xhr.onreadystatechange = function()	{
      				if (xhr.readyState == 4) {
      					if (xhr.status == 200){
      						// action à faire lorsque la suppression s'est bien passée.
      					}
      				}
      			}
      			xhr.open("POST","ajax/remove_club.php", true);
      			xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      			xhr.send("remove_club="+select.options[i].value);
      			*/
      		}
      	}
      	return au_moins_un;
      }
      
      
      
      <form method="post" action="" name="supr_club">
      	Clubs à supprimer : 
      	<select name="club_supr[]" multiple="multiple" size="8">
      		<?php
      		$select = "SELECT * FROM clubs ORDER BY nom;";
      		$result = mysql_query($select);
      		while($data = mysql_fetch_array($result)){
      			echo '<option value="'.$data['id'].'">'.$data['nom'].'</option>';
      		}
      	?>
      	</select> 
      	<input type="hidden" name="champ" <?php echo "value='$champ'"; ?> />
      	<input type="hidden" name="asupr" value="asupr" />
      	<input type="button" value="Supprimer" onclick="select_selected(this.form);" />
      </form>