Reputation: 24332
I have HTML:
<input type="text" id="text1" onBlur="focusMe(this.id);" />
and javascript function:
function focusMe(Id)
{
document.getElementById(Id).focus();
}
Upvotes: 0
Views: 3070
Reputation: 8447
It is possible:
function focusMe(Id) {
setTimeout(function() {document.getElementById(Id).focus();}, 0);
}
Your script is not working because onBlur is called just before the focus is lost.
Two remarks:
Upvotes: 7
Reputation: 546085
Well, running your code shows that it doesn't work, and probably with very good reason.
Since I'm here, I should point out that you can actually pass a reference to this
rather than this.id
and save some hassle:
onBlur="focusMe(this)"
function focusMe(el) {
el.focus();
}
But it doesn't work anyway, so it's a tad moot.
Upvotes: 0
Reputation: 499062
I would just pass the control directly. Why pass the ID just to get the control back from it again?
Markup:
<input type="text" id="text1" onBlur="focusMe(this);" />
Javascript:
function focusMe(elem)
{
elem.focus();
}
Upvotes: 0