簡體   English   中英

防止用戶在 JS 計算器中輸入多個小數點

[英]Prevent user to type more than one decimal dot in a JS calculator

在我使用 Javascript 的計算器項目中,如果已經有一個小數點,我試圖阻止用戶輸入多個小數點(例如:5.2.3.56 不允許)。

用戶點擊的所有數字、小數點和運算符按鈕都被推送並存儲在一個數組中。

如何檢查是否已經有一個點並使用一組值禁用按鈕?


const numButtons = document.querySelectorAll('.number');

const opButtons = document.querySelectorAll('.operation');

const display = document.querySelector('.display');

const decimal = document.querySelector('.decimal');

let opClicked;

let resultArray = [];

// Event listeners

numButtons.forEach(number => {
    number.addEventListener('click', function(e) {

    numClicked = e.target.textContent;
    
    if (display.textContent === '0') {
        display.textContent = '';

    } else if (resultArray[resultArray.length - 1] === opClicked){   
        display.textContent = '';
    }
    resultArray.push(numClicked);
    display.textContent += numClicked
});

opButtons.forEach(operator => {
    operator.addEventListener('click', function(e) {

    empty();

    opClicked = e.target.textContent;
    resultArray.push(opClicked);

    operate();
 
});

decimal.addEventListener('click', function(e) {

    let decimalClicked  = e.target.textContent;

    resultArray.push(decimalClicked);
    display.textContent += decimalClicked;
    
});

decimal.addEventListener('click', function(e) {

    var decimalClicked  = e.target.textContent;
    
    if(resultArray.includes(decimalClicked) == false){
        resultArray.push(decimalClicked);
        display.textContent += decimalClicked;
    }
});

上面的代碼檢查 resultArray 是否包含小數,如果不包含,則將小數附加到數組中

暫無
暫無

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

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