Как добавить значение в массив в зависимости от выбранного селекта?

176
01 марта 2018, 14:06

Есть код jsfiddle.net:

         <form method="post">
           <p><select id="country" size="1" onchange="jsCoun()">
            <option disabled>Выберите страну</option>       
            <option value="1">Австралия</option>        
            <option value="2">Австрия</option>
            <option value="3">Англия</option>
            <option value="4">Аргентина</option>
           </select></p>
          </form>
         <span id="leagues"></span>
          <p>Результат игры:</p>
          <form method="post">
            <p><select id="result" size="1">
            <option>Победа хозяев</option>
            <option>Ничья</option>
            <option>Победа гостей</option>
            </select>
          </form>
<button id="save" onclick="save()">Сохранить</button>

И JS:

 var leagues = document.getElementById("leagues");
    var australia = ["Лига 1","Лига 2"];
    var austria = ["Бундеслига", "Первая лига"];
    var england = ["АПЛ", "Чемпионшип"];
    var argentina = ["Суперлига", "Примера Б"];
    var selectList = document.createElement("select");
    selectList.setAttribute("id", "mySelect");
    leagues.appendChild(selectList);
    function jsCoun() {
         while(selectList.firstChild) {
            selectList.removeChild(selectList.firstChild);
            }
        if(document.getElementById('country').value == "1") {
            for (var i = 0; i < australia.length; i++) {
                var option = document.createElement("option");
                option.setAttribute("value", australia[i]);
                option.text = australia[i];
                selectList.appendChild(option);
            }   
        } else if(document.getElementById('country').value == "2") {
            for (var i = 0; i < austria.length; i++) {
                var option = document.createElement("option");
                option.setAttribute("value", austria[i]);
                option.text = austria[i];
                selectList.appendChild(option);
            }   
        } else if(document.getElementById('country').value == "3") {
            for (var i = 0; i < england.length; i++) {
                var option = document.createElement("option");
                option.setAttribute("value", england[i]);
                option.text = england[i];
                selectList.appendChild(option);
            }   
        } else if(document.getElementById('country').value == "4") {
            for (var i = 0; i < argentina.length; i++) {
                var option = document.createElement("option");
                option.setAttribute("value", argentina[i]);
                option.text = argentina[i];
                selectList.appendChild(option);
            }   
        }
}

Задача создать функцию save, которая будет сохранять исход, выбранный в селекторе result в зависимости от выбранной страны и лиги. То есть, если выбрать Австралия, затем лига 1 и в result выбрать победа хозяев и нажать на кнопку Сохранить, то в массив я так понимаю, добавится цифра 1 в победе хозяев. Если выбрать это же и снова сохранить, то будет уже 2. Как это реализовать? Как узнать какая лига какой страны выбрана и какой результат, чтобы не сделать коряво. Помогите пожалуйста.

Answer 1

Недостаточно подробно описан вопрос.

Допустима ли правка уже присутствующего кода в fiddle? В какой массив требуется добавлять данные? Какой у него должен быть формат?

Массив - это объект формата ключ-значение. А вы просите добавить туда количество побед/поражений/ничьи, страну и лигу. И всё в одном месте.

Я написал функцию save, которая получает все данные о выбранных полях и выводит их в алерте. Вы можете либо дополнить вопрос, либо сами использовать полученные данные для формирования необходимого вам массива.

function save () {
  var countryElement = document.getElementById("country");
  var country = countryElement.options[countryElement.selectedIndex].text;
  var league = document.getElementById('mySelect').value;
  var result = document.getElementById('result').value;
  alert('Страна: ' + country + ', Лига: ' + league + ', Результат: ' + result);
}
READ ALSO
Как получить значение options в js

Как получить значение options в js

Я хочу получать значение и value и содержимого options через jsС value разобрался

117
Изменить картинку в vk

Изменить картинку в vk

Здравствуйте! Я бы хотел узнать, как изменить изображение в вк, а затем его запостить на стенуДопустим у меня есть изображение, загруженное...

116
Проблема с расширением

Проблема с расширением

При работе расширения некоторые сайты блокируются и не открываются(например YouTube),

143