Я ищу способ установить, чтобы «Поле выбора» выбиралось, когда SelectedIndex неизвестно

#javascript

Вопрос:

Я хотел бы установить YYYY-MM-DD (это происходит из параметра GET)

Я могу установить его, selectedIndex когда selectedIndex неизвестно, Как я могу установить выбранное поле по умолчанию?

Я хотел бы установить «выбранный по умолчанию» по значению

например GET = 2021-08-06 , я хочу, чтобы он был выбран 2021-08-06 , но HTML динамически изменяется.

document.getElementById(«select_date»).Выбранный индекс = 1; => 2021-07-30 будет мокрый снег.

         var param = decodeURIComponent(element[1]);

        document.getElementById("select_date").value = param;
        console.log("param" param)
//log result = param2021-7-23


 <form method="GET" action="http://">
 <select id="select_date" name="delivery_date">
<option value="2021-07-23">2021-07-23</option>
<option value="2021-07-30">2021-07-30</option>
<option value="2021-08-06">2021-08-06</option>
</select>
 

введите описание изображения здесь
Когда document.getElementById("select_date").value = paramValue
Когда param = "2021-7-23" ; тогда работайте хорошо.

введите описание изображения здесь

Комментарии:

1. пробовать document.getElementById("select_date").val('2021-08-06')

2. Ошибка неперехваченного типа: document.getElementById(…).val не является функцией при подтверждении?c=3 и дата=2021-7-23:312 происходит

3. @conny val не работает в чистом JavaScript. Это синтаксис jQuery. Смотрите мой ответ, чтобы решить проблему

Ответ №1:

Просто установите значение selectbox:

 var elemnt = "2021-8-6";

var date = new Date(elemnt);

var format = convertDate(date) 

var seolectedval = decodeURIComponent(format)

document.getElementById("select_date").value = seolectedval;

function convertDate(date) {
  var yyyy = date.getFullYear().toString();
  var mm = (date.getMonth() 1).toString();
  var dd  = date.getDate().toString();

  var mmChars = mm.split('');
  var ddChars = dd.split('');

  return yyyy   '-'   (mmChars[1]?mm:"0" mmChars[0])   '-'   (ddChars[1]?dd:"0" ddChars[0]);
} 
 <form method="GET" action="http://">
 <select id="select_date" name="delivery_date">
<option value="2021-07-23">2021-07-23</option>
<option value="2021-07-30">2021-07-30</option>
<option value="2021-08-06">2021-08-06</option>
</select>

</form> 

Комментарии:

1. На самом деле нет … но ваш код вставки работает хорошо . но когда я использую переменную , она не работает. document.getElementById(«select_date»).значение = параметр;

2. Это не относится к переменной. пожалуйста, покажите значение element[1]

3. элемент[1] — 2021-08-06

4. значение элемента[1] — строка? Я обновил свой ответ и все еще в порядке

5. Я не уверен. насколько я могу судить …похоже, это струна. Это так странно . Когда selectBox.value поступает из компонента decodeURIComponent(elemnt), он всегда будет пустым.