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 ;)
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
-
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. -
Contributeurvoici 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> -
Merci c'est exactement ce qu'il me fallait :)