Вы можете взять числовое значение и проверить, задана ли строка, или это значение является целочисленным или отрицательным.Затем вам нужна функция для отображения нужного сообщения определенного цвета.
Это решение имеет преждевременный выход, часто выход парадигма , где функция принимает условие и выходит, если условие выполнено, чтобы предотвратить переход к естественномуконец функции с использованием цепной else ... if ... else
структуры.
Короче говоря, этот подход работает без else
частей, что здесь возможно.
const
myArray = [],
addData = () => {
const setMessage = (string, color = '#000000') => {
message.style.color = color;
message.innerHTML = string;
}
let inputData = document.getElementById('user_input'),
message = document.getElementById('message'),
value = +inputData.value;
if (inputData.value === '') {
setMessage('nothing entered', '#bb0000');
return;
}
inputData.value = "";
if (value !== Math.floor(value)) {
setMessage('no int', '#bb0000');
return;
}
if (value <= 0) {
setMessage('negative int', '#bb0000');
return;
}
myArray.push(value);
console.log(myArray);
setMessage('positive int');
}
document.getElementById('myBtn').addEventListener('click', addData);
<input type="number" id="user_input">
<button type="button" id="myBtn">Click to store</button>
<p id="message"></p>