OnKeyUp event does not work

E

Evan Wong

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?
 
G

Grant Wagner

Evan said:
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?

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 <[email protected]>

* Client-side Javascript and Netscape 4 DOM Reference available at:
*
http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_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-developer/upgrade_2.html
 
E

Evan Wong

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?
 

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,731
Messages
2,569,432
Members
44,835
Latest member
KetoRushACVBuy

Latest Threads

Top