Pressing Tab to Focus on <div>

M

mumebuhi

Hi,

How do you make an element (e.g. <div>) to receive focus when pressing
TAB key? I understand that some elements such as <select> and <input>
by default will receive focus when the TAB key is pressed. Is there a
way to tweak a <div> to get the same treatment?

Thank you.


Buhi
 
S

SAM

mumebuhi a écrit :
Hi,

How do you make an element (e.g. <div>) to receive focus when pressing
TAB key? I understand that some elements such as <select> and <input>
by default will receive focus when the TAB key is pressed.

and more useful with the attribute 'tabindex'

Is there a way to tweak a <div> to get the same treatment?

Not in html.
perhaps could you try with an anchor in this div ?
(that doesn't work on my Fx)

What do you expect to do ?
Tab to only one specific div ?
or to jump by tabbing from div to div ?

In all cases you'll have to catch the keycode of tab,
something like:

<body onkeydown="KeyCheck(event);" onkeyup="if(cod==9)jump();">

Your div(s) must all of then have an id.

<script type="text/javascript">
var cod=0, goal, D=[];
function KeyCheck(evt) {
evt = (evt) ? evt : ((event) ? event : null);
var evver = (evt.target) ? evt.target : ((evt.srcElement)
?evt.srcElement : null );
cod = evt.keyCode;
goal = evver
}
function init() {
var d = document.getElementsByTagName('DIV');
for(var i=0, n<d.length; i<n; i++) {
d.idx = i;
D = d;
}
}
window.onload = init;
function jump() {
if(goal && (!goal.tagName || goal.tagName != 'DIV')
goal = goal.parentNode;
while(goal.tagName!='DIV') goal = goal.parentNode;
var i = (goal.idx>=D.length-1)? 0 : goal.idx+1;
location = '#'+D.id;
}
</script>

Not tested !
 
M

mumebuhi

Maybe a simpler question, when a <a id="a_id"> is onFocus, can we
change the focus to e.g. <div id="div_id">?

Any JavaScript object responsible to keep track what currently is on
focus?
 
S

SAM

mumebuhi a écrit :
Maybe a simpler question, when a <a id="a_id"> is onFocus, can we
change the focus to e.g. <div id="div_id">?

Any JavaScript object responsible to keep track what currently is on
focus?

the JS function focus() works only with elements of form

You can't give focus to a div, it's a nonsens.
(a div can't have an html action, so what to do with a focus ?)


but you can do :
location = "#"+'div_id'
to scroll to this div.


not tried but perhaps something like

<div id="div_id">
<a id="a_id" onfocus="var a=this.parentNode;
while(a.tagName!='DIV') a=a.parentNode; alert('div is: '+a.id);">
</div>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,742
Latest member
AshliMayer

Latest Threads

Top