Javascript - Как сохранить результаты функции onClick в две разные переменные? - PullRequest
0 голосов
/ 01 ноября 2019

Я изучаю JavaScript. У меня есть два набора параметров раскрывающегося списка, и я хочу сохранить изменения в раскрывающемся списке в виде двух разных переменных при нажатии одной кнопки (обновить).

Вот моя функция для получения переменных:

function jsDropDown() {
        //Get the start date upon changing the button
        var start_date = document.getElementById("days1").value + "-" + 
            document.getElementById("months1").value + "-" +
            document.getElementById("years1").value;
        var end_date = document.getElementById("days2").value + "-" + document.getElementById("months2").value + "-" +
            document.getElementById("years2").value;
    }

Вот скрипка: https://jsfiddle.net/TomaSaha/eh1w7k6a/

Идея состоит в том, когда пользователь выбирает 01-февраль-2019это сохраняется как start_date, а когда пользователь выбирает 31-декабря-2019, это сохраняется как end_date.

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

enter image description here

эй, пожалуйста, пройдите описанную выше защелку, посмотрите в консоли, работает ли она отлично так, как вы хотите. и найдите приведенный ниже код

<Div class="dropDown1">

  Day: <select name="days" id="days1">
    <option value="01">01</option>
    <option value="02">02</option>
    <option value="03">03</option>

  </select>
  Month: <select name="months" id="months1">
    <option value="January">January</option>
    <option value="February">February</option>
    <option value="March">March</option>

  </select>

  Year: <select name="years" id="years1">
    <option value="1995">1995</option>
    <option value="1996">1996</option>
    <option value="1997">1997</option>

  </select>
</Div>
End Date <Div class="dropDown2">

  Day: <select name="days" id="days2">
    <option value="01">01</option>
    <option value="02">02</option>
    <option value="03">03</option>

  </select>
  Month: <select name="months" id="months2">
    <option value="January">January</option>
    <option value="February">February</option>
    <option value="March">March</option>

  </select>

  Year: <select name="years" id="years2">
    <option value="1995">1995</option>
    <option value="1996">1996</option>
    <option value="1997">1997</option>

  </select>
</Div>
<button onclick="myFunction()">Update</button>
<script>
function myFunction() {debugger
  //Get the start date upon changing the button
  var start_date = document.getElementById("days1").value + "-" + document.getElementById("months1").value + "-" +
    document.getElementById("years1").value;
  var end_date = document.getElementById("days2").value + "-" + document.getElementById("months2").value + "-" +
    document.getElementById("years2").value;
console.log('start_date', start_date);
console.log('end_date', end_date)
}

</script>
0 голосов
/ 01 ноября 2019

Несколько баллов:

1) Ваши выпадающие тексты года отличаются от значений, 1982 сопоставлен с 1995 и т. Д.

2) Ваша функция верна, но не может быть вызвана, потому чтоfiddle имеет несколько иную настройку и в результате выдает referenceError (функция не определена)

Таким образом, у вас есть два варианта:

(a) переместить вашу функцию в тег скрипта

ИЛИ

(б) используйте функцию document.ready из jquery

см. Демонстрацию с 2 (а) https://jsfiddle.net/fgrt1qvh/1/

...