2

I want to change onClick method in button in HTML with something other to not use onClick. I found on internet, addEventListener, but not sure how to replace here? Below are my code:

function leapYear() {
    let input = document.getElementById("year");
    let year = parseInt(input.value);
    console.log(year);
    let output = document.getElementById("output");
    

    year = (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
    output.innerHTML = 'Year ' + year + '. is' + (year ? '' : ' not') + ' leap year.';

}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Leap Years</h1>
<p>Type a year:</p>
<div>
  <input id="year" type="text" size="24" />
  <button onclick="leapYear()">Check leap year</button> <br />
    <span id="output"></span>
    </div>
    <script src="LeapYear.js"></script>
</body>
</html>

1 Answer 1

3

Set the first parameter of addEventListener to 'click' and the second to the function:

function leapYear() {
    let input = document.getElementById("year");
    let year = parseInt(input.value);
    console.log(year);
    let output = document.getElementById("output");
    

    year = (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
    output.innerHTML = 'Year ' + year + '. is' + (year && !isNaN(input.value) ? '' : ' not') + ' leap year.';

}

const button = document.querySelector('button');
button.addEventListener('click', leapYear)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Leap Years</h1>
<p>Type a year:</p>
<div>
  <input id="year" type="text" size="24" />
  <button>Check leap year</button> <br />
    <span id="output"></span>
    </div>
    <script src="LeapYear.js"></script>
</body>
</html>

Sign up to request clarification or add additional context in comments.

1 Comment

@MAlex It is better to create new question for another question. Keep all question in simple.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.