首页 > 解决方案 > 如何让页面加载时调用的函数与按钮一起使用

问题描述

let n = document.getElementById('input').value;
const answer = document.getElementById('answer');
const button = document.getElementById('start');
button.addEventListener('click', isPrime(n));

function isPrime(n) {
  if (n === 1) {
    answer.innerHTML = '1 is neither a prime nor a composit number. It is a unit.';
  } else if (n < 0) {
    answer.innerHTML = 'It must be a positiv number.'
  }
  for (const d = 2; d <= n; d++) {
    if (n % d == 0){
        answer.innerHTML = 'It is not a Prime Number';
        break;
    } else {
        answer.innerHTML = 'It is a Prime Number';
    }
  }
}

它是一个带有输入、按钮和段落的简单网页。当用户输入一个数字并按下按钮时,段落应该改变它是否是素数。但它只能通过刷新站点而不是按下按钮来工作......

标签: javascripthtml

解决方案


您将立即获得输入的值,let n = document.getElementById('input').value;然后您也isPrime立即调用该函数。

你可以这样做:

const answer = document.getElementById('answer');
const button = document.getElementById('start');
button.addEventListener('click', isPrime); // dont call the function, just pass it.

function isPrime() {
  let n = document.getElementById('input').value; // get the value when function runs.
  if (n === 1) {
    answer.innerHTML = '1 is neither a prime nor a composit number. It is a unit.';
  } else if (n < 0) {
    answer.innerHTML = 'It must be a positiv number.'
  }
  for (const d = 2; d <= n; d++){
    if (n % d == 0){
      answer.innerHTML = 'It is not a Prime Number';
      break;
    } else {
      answer.innerHTML = 'It is a Prime Number';
    }
  }
}

推荐阅读