Login or Sign up Help | Site Map
Connecting Tech Pros Worldwide

OnKeyUp event does not work

Question posted by: Evan Wong (Guest) on July 23rd, 2005 11:12 AM
I have problem to get onkeyup event. If we put the event in HTML
statement like -

"<input name=field1 size=16 onkeyup="javascript:function1();>"

it works.

If we put in JavaScript code like this
var oElmt = document.createElement("input");
:
oElmt.onkeyup = function () {javascript:function1() };
or
oElmt.onkeyup = "javascript:function1()";

It will work sometimes, and failed sometimes. Most of the time I need
to switch to another field and back, to make the event working.

Anybody experienced this problem before?






*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Would you like to answer this question?
Sign up for a free account, or Login (if you're already a member).
Grant Wagner's Avatar
Grant Wagner
Guest
n/a Posts
July 23rd, 2005
11:12 AM
#2

Re: OnKeyUp event does not work
Evan Wong wrote:
[color=blue]
> I have problem to get onkeyup event. If we put the event in HTML
> statement like -
>
> "<input name=field1 size=16 onkeyup="javascript:function1();>"
>
> it works.
>
> If we put in JavaScript code like this
> var oElmt = document.createElement("input");
> :
> oElmt.onkeyup = function () {javascript:function1() };
> or
> oElmt.onkeyup = "javascript:function1()";
>
> It will work sometimes, and failed sometimes. Most of the time I need
> to switch to another field and back, to make the event working.
>
> Anybody experienced this problem before?[/color]

Yes, when you try to assign a string to what is a function reference, it
tends not to work too well. Use:

<body onload="test();">
<form name="myFormName" id="myFormId">
</form>
<script type="text/javascript">
function test() {
var a = document.createElement('input');
// assign the reference to function1 to the onkeyup event
a.onkeyup = function1;
document.forms['myFormName'].appendChild(a);
// or document.getElementById('myFormId').appendChild(a) ;
}
function function1() {
alert('keyup');
}
</script>
</body>

Just as a side note:

oElmt.onkeyup = function() { javascript:function1(); };

should work, but "javascript:" in that example is simply a label that
serves no purpose, and you lose the ability to refer to have "this" in
function1() refer to the element.

--
| Grant Wagner <gwagner@agricoreunited.com>

* Client-side Javascript and Netscape 4 DOM Reference available at:
*
http://devedge.netscape.com/library...nce/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/...rence_entry.asp

* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 7 / Mozilla
* http://www.mozilla.org/docs/web-dev.../upgrade_2.html



Evan Wong's Avatar
Evan Wong
Guest
n/a Posts
July 23rd, 2005
11:13 AM
#3

Re: OnKeyUp event does not work
My findings on this problem. Actually the original code works.
However, when the screen is loaded, my code will set focus on that text
box that has onkeyup event set. If I type in the text right away, the
onkeyup event is not fired. If I click on the text box (the same text
box), the onkeyup event is fired and the function1 will be executed for
every keystroke.

I have tried to use .focus() and .select() to set focus on the field,
and the behavior is the same. Any idea?



*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

 
Not the answer you were looking for? Post your question . . .
180,433 Experts ready to help you find a solution.
Sign up for a free account, or Login (if you're already a member).

  • Didn't find the answer you were looking for?
    Post Your Question
  • Top Community Contributors