Forum Moderators: open

Message Too Old, No Replies

Help with objects handlers

Problem with HTMLInputElement event handling

         

paolodina

10:30 am on Sep 8, 2005 (gmt 0)

10+ Year Member



Hi all, I need to do some actions when some event happen, via javascript.

This function associate an event to an object:

// Cross-browser event handlers.
function addEvent(obj, evType, fn) {
if (obj.addEventListener) {
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent) {
var r = obj.attachEvent("on" + evType, fn);
return r;
} else {
return false;
}
}

I'm trying to use it in this way:
addEvent(document.getElementById('id_internal_code'), 'click', function() {
alert('foo');
})

id_internal_code's objecy is an HTMLInputElement, so it should support the onclick event. Instead I get an error (object has no properties) that points at the line: if (obj.addEventListener) {

Can you help me to understand what's wrong?

TIA,
paolo

Bernard Marx

12:15 pm on Sep 8, 2005 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Works OK...

<html><head><title>TEST</title>
<link href=".css" type="text/css" rel="stylesheet" />
<script type="text/javascript">

window.onload = function()
{
addEvent(
document.getElementById('test'),
'click',
function(){ alert('foo');}
);
}

function addEvent(obj, evType, fn)
{
if (obj.addEventListener) {
obj.addEventListener(evType, fn, false);
return true;
} else if (obj.attachEvent) {
var r = obj.attachEvent("on" + evType, fn);
return r;
} else {
return false;
}
}

</script>
</head>
<body>
<input id="test" type="text">
</body>
</html>

paolodina

7:33 am on Sep 9, 2005 (gmt 0)

10+ Year Member



Bernard your solution works perfectly, thanks a lot!

paolo