Why does this simple JSFiddle not work?


There is some code I wanted to put into JSFiddle. It didn’t work. Narrowing it down I can’t even get this simplest of code to work:

JSFiddle

function displaymessage() {
  alert("Hello World!");
}
<form>
  <input type="button" value="Click me!" onclick="displaymessage()" />
</form>

<p>By pressing the button above, a function will be called. The function will alert a message.</p>

The alert box doesn’t show up in the JSFiddle.

http://jsfiddle.net/praveen_prasad/XNJxT/14/

Js fiddle so something like this to whatever you write

window.addEvent('load',function(){

//Your code


});

enter image description here


Select No wrap - bottom of <head> in the “Load type” dropdown in the JavaScript settings.

Screenshot of the dropdown mentioned above


You need to take your function out of the onLoad/onReady otherwise it is placed inside of another scope and your button cannot access the function. In your case you need to use No wrap (head)

The code generated looks like this:

Ext.onReady(function() {
    function displaymessage()
    {
        alert("Hello World!");
    }
});

Change the code to run "no wrap (head)" instead of "onDomReady". Your function isn't visible to your markup as is.


Maybe some of you need to move your function outside of document.ready if you use html onclick="func()"

$(document).ready(function() {
  ...
}

function func(){
  ...
}

Sorry but... is much simpler than what you propose...

If you want to call a js function with "onclick" attribute, put your javascrit code directly in head, you dont need domready or similars.

Second, you need to include "javascript:" before the function name.

See: http://jsfiddle.net/XNJxT/1838/

<input type="button" value="Click me!" onclick="javascript:displaymessage()" />

My problem to this was when I made my script tag I typed it out :

script type="javascript/text"

instead of :

script type="text/javascript"

and now it works.