Создайте выпадающий список месяца / дня, а не плагин - PullRequest
0 голосов
/ 30 августа 2018

У меня есть форма, и я хотел бы, чтобы пользователь указал свой месяц рождения и день рождения. Тем не менее, я не могу найти способ построить выпадающий список месяца и дня, используя jquery. Все, что я прочитал, о плагине, но я не могу использовать плагин. Ниже приведена базовая html-структура с динамически заполняемым полем выбора «день» в зависимости от того, какой месяц выбрал пользователь.

  <select id="month" onchange="selectMonth(this.options[this.selectedIndex].value)" name="month">
       <option value=""></option>
       <option value="January">January</option>
       <option value="February">February</option>
       <option value="March">March</option>
       <option value="April">April</option>
       <option value="May">May</option>
       <option value="June">June</option>
       <option value="July">July</option>
       <option value="August">August</option>
       <option value="September">September</option>
       <option value="October">October</option>
       <option value="November">November</option>
       <option value="December">December</option>
     </select>

<select id="day"></select>

Я создал эту скрипку, чтобы дать вам представление о том, что я пытаюсь сделать. К сожалению, эта скрипка не работает (это был единственный учебник, который я смог найти, и он не работал). https://jsfiddle.net/katherinekonn/hLc8r915/28/

Может кто-нибудь объяснить, как бы я это сделал? Важно, чтобы в зависимости от того, какой месяц пользователь выбрал, будет отображаться правильное количество дней (например, если пользователь выберет февраль, то будет показано 29 дней).

1 Ответ

0 голосов
/ 30 августа 2018
  1. Чтобы объявить функцию js, вы можете попробовать const selectMonth = month => {} вместо var selectMonth(month){}.
  2. Посмотрев на вашу функцию js, значения параметров должны быть числом, а не названием месяца.
  3. Чтобы очистить все опции в раскрывающемся списке, вы можете попробовать dateSelect.innerHTML = "" вместо dateSelect.options.length = 0, который dateSelect.options.length только для чтения.
  4. Чтобы добавить параметры в раскрывающийся список, вы можете попробовать dateSelect.appendChild(new Option(dayNum, dayNum)) вместо dateSelect.options[dateSelect.options.legnth] = new Option(date[month - 1][i], i)

Можете взглянуть на мое решение: https://jsfiddle.net/ymkasf6c/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...