Récupérer la valeur d'un select
Bonsoir,
J'ai plusieurs <select> dans une page définis avec des id. Je récupére la valeur du <select> actif. Cela fonctionne
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
<body>
<form name="search">
<select id="quoi_1" size="6" onchange="id0=this.id;" onclick="findInPage()">
<option value="ab">ab</option>
<option value="ac">ac</option>
</select>
</div>
<div id="smenu2">
<select id="quoi_2" size="6" onchange="id0=this.id;" onclick="findInPage()">
<option value="bd">bd</option>
<option value="cd">cd</option>
</select>
</div>
<div id="smenu3">
<select id="quoi_3" size="6" onchange="id0=this.id;" onclick="findInPage()">
<option value="ef">ef/option>
<option value="eg">eg</option>
</select>
</div>
<div id="smenu4">
<select id="quoi_4" size="6" onchange="id0=this.id;" onclick="findInPage()">
<option value="gh">avec</option>
<option value="moins">moins</option>
</select>
</div>
</form>
</body> |
Mais je voudrais une autre méthode que :
Code:
1 2
|
onchange="id0=this.id;" |
pour récupérer cette valeur car j'ai besoin de onchange pour réinitialiser une variable.
voici mon code javascript (pas dans le détails car il fonctionne et qu'il est long):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
var id0;
function findInPage()
{
var string = document.getElementById(id0).options[document.getElementById(id0).selectedIndex].value;
...
...
...
document.onkeypress=appuieTouche;
...
}
function appuieTouche
{
if (document.all)
{
if (event.keyCode==13)
{
findInPage();
}
}
else
{
if (e.which==13)
{
findInPage();
}
}
} |
Je pourrais faire comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
function findInPage()
{
var string = document.search.quoi_1.options[document.search.quoi_1.selectedIndex].value;
...
...
...
document.onkeypress=appuieTouche;
...
}
function appuieTouche
{
if (document.all)
{
if (event.keyCode==13)
{
findInPage(document.search.quoi_1.options[document.search.quoi_1.selectedIndex].value);
}
}
else
{
if (e.which==13)
{
findInPage(document.search.quoi_1.options[document.search.quoi_1.selectedIndex].value);
}
}
} |
Mais là je lui indique l'id du <select> càd quoi_1 et je ne vais pas faire une fonction pour chacun de mes <select> car il y en a beaucoup.
Merci pour votre aide.
Récupérer la valeur d'un select
Bonsoir,
J'ai essayé et çà bug.
Ma fonction me permet de faire une recherche dans ma page à l'aide des choix de chacun des menus déroulants.
Si je commence une recherche et qu'au cours de ma recherche je fais un nouveau choix, la recherche doit repartir du haut du document. Pour cela je dois donc réinitialiser ma variable : var n=0; qui est déclarée en dehors de mes fonctions et je me sers donc du onchange : onchange="n=0";
J'ai essayé çà mais cela ne fonctionne pas :
Code:
1 2
|
<...onchange="id0=this.id;n=0;" onclick="findInPage()"....> |
Récupérer la valeur d'un select
Je mets le code. Oui la variable n est déclarée en global.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
<script type="text/javascript">
var n = 0;
var id0;
function findInPage()
{
var txt, x, found;
var string = document.getElementById(id0).options[document.getElementById(id0).selectedIndex].value;
if (string != "")
{
if (document.all)
{
//i.e
txt = window.document.body.createTextRange();
for (x = 0; x <= n && (found = txt.findText(string)) != false; x++)
{
//moveStart(String mode, Integer n)
//Définit l'unité à utiliser. Déclenche une erreur "Argument non valide" dans le cas où l'unité est inconnue
//Définit le nombre d'unités que le curseur de départ doit se déplacer, relativement à sa position d'origine.
txt.moveStart("character", 1);
//moveEnd()
//Moves the end position of a text to a new location
//textedit = start or end of the text range
txt.moveEnd("textedit");
}
if (found)
{
//Si texte trouvé, le sélectionner et faire défiler la page pour qu'il soit visible
txt.moveStart("character", -1);
txt.findText(string);
txt.select();//crée une sélection active sur le texte
txt.scrollIntoView();//fait défiler jusqu'au texte
n++;
document.onkeypress=appuieTouche;//on appuie sur la touche entrée pour voir les occurences
}
else
{
//Si plus de texte trouvé alors recherche terminée. Réinitialisation du compteur.
//On renvoit sur une ancre pour voir les menus déroulants.
location.href='#haut';
document.onkeypress="";
alert("La recherche est terminée.");
n = 0;
}
}
else
{
//autres navigateurs. Utilisation de window.find() au lieu de createTextRange()
//Si texte trouvé, le sélectionner et faire défiler la page pour qu'il soit visible
if (window.find(string))
{
n++;
document.onkeypress=appuieTouche;
}
else
{
location.href='#haut';
findInPage();
//Même fonctionnalité que les 2 lignes du dessus mais le focus revient sur le texte et donc on ne
//voit pas les menus déroulants.
//while(window.find(string, false, true));
//n++;
}
}
}
return false;
}
function appuieTouche(e)
{
if (document.all)
{
if (event.keyCode==13)
{
findInPage();
}
}
else
{
if (e.which==13)
{
findInPage();
}
}
}
</script> |
Récupérer la valeur d'un select
Bonjour,
Cela ne fonctionne pas car quelle est la valeur de id0?
Merci
Récupérer la valeur d'un select
Je ne connais pas selectField. J'ai fais une recherche sur google mais pas beaucoup de résultat.
J'ai essayé :
Code:
1 2
|
var string = selectField.options[document.getElementById(selectField.id).selectedIndex].value; |
Cela récupère bien la valeur du select mais ma deuxième fonction appuieTouche() ne marche plus car elle a aussi besoin de récupérer cette valeur.
Récupérer la valeur d'un select
Autant pour moi pour le selectField. J'ai cru que c"était une fonction.
J'ai les yeux qui croisent depuis que je tourne autour de ce problème!