У меня возникли проблемы с тем, что мой onchange не работает и не хранит числа в массиве через текстовое поле.
Что я хочу сделать код - это получить статистику по номерам, введенным в текстовое поле. Я делаю это, вводя номера пользователей в текстовое поле и нажав клавишу Enter, чтобы отобразить эти числа. Цифры должны быть помещены в массив, прежде чем помещаться в список для отображения введенных чисел. Тем не менее, я продолжаю получать эту ошибку, когда onchange не запускается при нажатии клавиши Enter или нажатии текстового поля.У вас возникли проблемы с заменой и хранением чисел в массиве с помощью текстового поля
Here is an image of the error I am getting when inspecting the code
С номерами, хранящихся в массиве, я хочу, чтобы попытаться получить среднее значение чисел. Но я продолжаю получать ошибку «NaN», которая заставляет меня думать, что мои номера не хранятся в массиве должным образом.
Вот код:
<html>
<head>
<title>Stats</title>
</head>
<p>Array is called numbers. numbers.sort();</p>
<div id="stats">
<input type ="text" id="value" onchange="list()"> <!-- Getting the Onchange Error here -->
<button id="button1" onclick = "list()">Enter</button>
<ul id="list1">
</ul>
<button id="stat_button" onclick="calculateMean()">Get Statistics</button>
<p id="mean">Mean= </p>
</div>
<script>
function list() {
var liElement = document.createElement("li"); //Creating new list element//
var ulElement = document.getElementById("list1"); //Get the ulElement//
var input = document.getElementById("value").value; //Get the text from the text box//
var numbers = []; //create Array called numbers
numbers.push(input);//adds new items to the array
//for loop//
for(var i=0; i < numbers.length; i++) {
liElement.innerHTML = numbers[0]; //Puts the array into the list for display//
ulElement.appendChild(liElement); //add new li element to ul element//
}
}
function calculateMean() {
var meanTotal = 0;
var meanAverage = 0;
var meanArray = [];
for (var i = 0; i < meanArray.length; i++) {
meanTotal += meanArray[i];
}
meanAverage = (meanTotal/meanArray.length);
document.getElementById("mean").innerHTML = meanAverage;
}
</script>
Не уверен, что о 'onchange' проблемы, но' numbers.push (вход) 'добавит * один * элемент массива, строка, содержащая whatev пользователь вводит в поле. Вероятно, вам нужно что-то вроде 'numbers = input.split (/ [,] + /)', чтобы создать массив, разделив строку на запятую и/или пробелы. – nnnnnn