469,645 Members | 1,971 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,645 developers. It's quick & easy.

How to Capture onFocus event

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
Jul 23 '05 #1
2 2791
Paresh Shah wrote:
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[i].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

--
If the Internet is a Marx Brothers movie, and Web, e-mail, and IRC are
Groucho, Chico, and Harpo, then Usenet is Zeppo.
Jul 23 '05 #2
On Tue, 4 May 2004 13:11:16 +0200, Berislav Lopac
<be************@dimedia.hr> wrote:

[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[i].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

--
Michael Winter
M.******@blueyonder.co.invalid (replace ".invalid" with ".uk" to reply)
Jul 23 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Rich Morey | last post: by
1 post views Thread by Michael Albanese | last post: by
5 posts views Thread by Max | last post: by
2 posts views Thread by Jonathan N. Little | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.