How to read javascript event programatically

Imagine you have a button like this:

<input name="myButton" type="button" value="button" onclick="return test();" >

where the test functions is as follows:

function test(){
  // do something
  return true; // based on some logic return boolean
}

Now let's say,I don't know what is set for the onclick event, and at runtime I need to read the function or any code set to onclick and run it. Here is an example:

var btn = getElementById('myButton');
var btnOnClickFunc = btn.onclick;
if (btnOnClickFunc) {
    // do something
}

I know this doesn't work, and that's actually my question. How can I read the button's onclick event in this example at runtime?

An example of this case is when the onclick is attached to the button later using jQuery.

Any help is appreciated ...

Answers


If you need to do this you might want to eventually refactor your code so that you no longer need to do this. In the meantime you can use this hack:

$('#myButton').attr('onclick')();

The attribute 'onclick' actually returns a function, so calling it with () actually executes that function.

If you'd rather not use jQuery, you don't have to. The following works without it:

document.getElementById('myButton').onclick();

Also, for either of these two, you can break it up into two lines:

var clickFunc = $('#myButton').attr('onclick');
...
clickFunc();

Need Your Help

Can you set different JDBC Realms for different web apps in Tomcat 7?

tomcat7 jdbcrealm

I have successfully implemented a mysql server as a JDBCRealm for authentication in Tomcat 7. What I can't figure out is if it's possible to use different schemas or tables for different web apps. In