Bonjour à tous,
Est il possible avec JavaScript de connaître la valeur contenu dans l'attribut tabindex d'un champs??
et inversement de sélectionner un champs grâce à la valeur de tabindex??
Merci à tous pour vos réponses
Version imprimable
Bonjour à tous,
Est il possible avec JavaScript de connaître la valeur contenu dans l'attribut tabindex d'un champs??
et inversement de sélectionner un champs grâce à la valeur de tabindex??
Merci à tous pour vos réponses
Je ne sais pas ce que tu veux en faire mais c'est généralement une mauvaise idée que de vouloir modifier le fonctionnement intrinsèque des règles de navigation...
Quoiqu'il en soit tu peux depuis javascript récupérer l'attribut du tabindex :
voici un script que j'avais récupéré il y a quelque temps (compatible IE6, Mozilla 1.7 & Opera 8):Code:nom_champ.tabIndex
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 <form action="foo"> <input type="text" tabindex="1"> <input type="text" tabindex="2"> <input type="text" tabindex="3"> <input type="text" tabindex="4"> <input type="submit"> </form> <script type="text/javascript"> function enter(form){ var fields=form.elements, a=[]; // add ENTER listeners for(var ii=fields.length; ii-- { if(fields[ii].type=="text") { _e(fields[ii], "onkeypress", enterListener); a[a.length]=fields[ii]; } } // init the tabIndex behavior a.sort( function(a,b){ return a.tabIndex > b.tabIndex ? 1 : -1; } ); for(var j=0; j<a.length; j++){ a[j].next = a[j+1]||a[0]; } // add the submission manager _e( form, "onsubmit", function(evt){ if(form.hasEntered) { form.hasEntered=false; return false; } return true; } ); // ENTER listener function enterListener(evt){ evt=evt||window.event; var el=this; if((evt.keyCode||evt.which)==13) { form.hasEntered=true; setTimeout( function(){ el.next.focus(); }, 1 ); } } } // event manager function _e(obj, evt, func){ if(obj[evt]) { obj[evt]=(function(h){ return function(evt){ return func.call(this, evt) && h.call(this, evt); } })(obj[evt]); } else { obj[evt]=func; } } // --- test --- :-) enter(document.forms[0]); </script>
:D
Merci beaucoup pour ta réponse; mais j'avoue que je ne suis pas spécialiste JS et que j'ai un peu de mal a comprendre le script que tu m'as donné après.
Enfin j'aurai encore une petite question : est ce que je peux placer le focus sur un champs grâce à l'attribut tabindex? par exemple quelquechose comme ca :
Ce que j'essaie de faire est relativement simple : l'écran sera coupe en 2 avec d'un cote un document de type PDF ou word et de l'autre un formulaire. quand l'utilisateur surlignera un mot ou un groupe de mot, celui ci sera automatiquement copier dans le champs qui avait ete prealablement sélectionner (jusqu'ici, c fait et ca fonctionne). ensuite une fois le mot ou le groupe de mot copier dans le champs, le focus se placera sur le champs suivant (c'est la qu'intervient l'attribut tabIndex).Code:document.forms['createApplicant'].elements[field.tabIndex].focus();