簡體   English   中英

JavaScript僅運行一次功能

[英]Javascript runs function only once

的HTML

<p>What factorial would you want to calculate?</p>
<input id="factorium" type="number">
<input id="submission" type="submit" value="Calculate">

Java腳本

function factorial(x) {
    if (x === 0) {
        return 1;
    }
    return x * factorial(x - 1);
}

    var inputBox = document.getElementById('factorium').value;
    var submission = document.getElementById('submission');
    submission.onclick = function(){console.log(factorial(inputBox))};

編輯-

提交按鈕只工作一次,我需要刷新頁面才能使其再次工作,您知道如何解決此問題嗎?

您的JavaScript代碼可以減少為一行:

document.getElementById('factorium').value();

這足以觸發錯誤。 問題是.value() ,應改為.value 如錯誤消息所述, .value不是函數,因此無法調用。

我創建了一個新函數,該函數僅執行以下代碼:

function getVals(){

    var inputBox = document.getElementById('factorium').value;
    var submission = document.getElementById('submission');
    console.log(factorial(inputBox));
}

在輸入提交按鈕上,我添加了:

<input id="submission" type="submit" value="Calculate" onclick="getVals()">

JS小提琴鏈接

<p>What factorial would you want to calculate?</p>
<input id="factorium" type="number">
<input id="submission" type="submit" value="Calculate" onclick="calcFactorial()">

<script>

    function factorial(x) {
        if (x === 0) {
            return 1;
        }
        return x * factorial(x - 1);
    }

        function calcFactorial(){
            var inputBox = document.getElementById('factorium').value;
            var submission = document.getElementById('submission');
            console.log(factorial(inputBox));
        }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM