How to Capture onFocus event

P

Paresh Shah

Hi Friends...


I have an query on how to capture onFocus event for all the input
controls without writing onFocus event in the <input> tag.

say my html form has 3 or 4 or 5 input text boxes, now I want to
capture onFocus event for all the text boxes without writing onFocus
code in <input> tag.

for example:
<form name="frm1">
<input type="text" name="t1">
<input type="text" name="t2">
<input type="text" name="t3">
</form>

now in above example whenever user shifts the focus to input 1 i.e. t1
box, then some action should be taken say alert message is displayed,
then when focus shifts to input 2 i.e. t2 box, then same action is
displayed & alert message is displayed. for this I dont want to write
code given below:

<form name="frm1">
<input type="text" name="t1" onFocus="alert('hi')">
<input type="text" name="t2" onFocus="alert('hi')">
<input type="text" name="t3" onFocus="alert('hi')">
</form>



If some body could help me.....

Thanks in Advance

Regards
Paresh Shah
 
B

Berislav Lopac

Paresh said:
Hi Friends...


I have an query on how to capture onFocus event for all the input
controls without writing onFocus event in the <input> tag.

var inputs = frm1.getElementsByTagname('input');
for(var i=0; i < inputs.length; i++) b
inputs.onfocus = function {
alert('hi');
}
}

or

var inputs = frm1.getElementsByTagname('input');
inputs[0].prototype.onfocus = function {
alert('hi');
}


I didn't test those, and I might be a bot off with the syntax, but this is
the direction to look at.

Berislav
 
M

Michael Winter

On Tue, 4 May 2004 13:11:16 +0200, Berislav Lopac

[snip]
var inputs = frm1.getElementsByTagname('input');

var inputs = form.getElementsByTagName( 'INPUT' );
for(var i=0; i < inputs.length; i++) b

for( var i = 0, n = inputs.length; i < n; ++i ) {
inputs.onfocus = function {
alert('hi');
}


It would be best to use a single function and assign its reference, rather
than create an anonymous function for each element.
}

or

var inputs = frm1.getElementsByTagname('input');

As above.
inputs[0].prototype.onfocus = function {

I don't know how successful that will be. Some browsers may not provide a
prototype for the element. The single function argument above applies
here, too.
alert('hi');
}

I didn't test those, and I might be a bot off with the syntax, but this
is the direction to look at.

It's a shame that IE is such a pile of crap. If it supported event
capturing (as introduced in DOM 2 Events), this would be so much easier.

Mike
 

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

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,822
Latest member
israfaceZa

Latest Threads

Top