Here’s my HTML:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>BookInc</title>
<link rel="stylesheet" href="style.css">
</head>
<body style="background-color:white;">
<div id= "mainPage">
</div>
<script src="test.js"></script>
</body>
</html>
and my javascript:
var btn = document.createElement('input');
btn.type = "button";
btn.className = "btn";
btn.value = "Negociate";
btn.onclick = console.log("hello");
document.getElementById('mainPage').appendChild(btn);
When my button is created the onclick event is fired automatically (I get hello printed in the console without clicking on the button) and then doesn’t work. When I inspected the page I realized that my button didn’t have an onclick anymore (just class and value)
I can’t figure out why so any help would be greatly appreciated. Thanks.
Advertisement
Answer
onclick needs to be a function. Please see the example.
var sayHello = function(){
console.log("hello");
};
var btn = document.createElement('input');
btn.type = "button";
btn.className = "btn";
btn.value = "Negociate";
btn.onclick = sayHello;
document.getElementById('mainPage').appendChild(btn);<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>BookInc</title>
<link rel="stylesheet" href="style.css">
</head>
<body style="background-color:white;">
<div id= "mainPage">
</div>
<script src="test.js"></script>
</body>
</html>