Javascript установить значение выпадающего в месяц не работает в IE11 - PullRequest
0 голосов
/ 04 июля 2018

Я использую следующий код для установки раскрывающегося значения на текущий месяц, он работает в Chrome и Edge, но в IE 11 это значение пусто.

month = currentDate.toLocaleString(locale, {month:"short"})
document.getElementById("month").value = month

month содержит значение «Jul» и имеет тип string, и я могу установить его как значение текстового поля.

Если я вручную назначу month = "Jul", это значение будет установлено в раскрывающемся списке.

1 Ответ

0 голосов
/ 04 июля 2018

IE toLocalString() добавляет к строке несколько невидимых символов Unicode , поэтому значение параметра dropdown и значение month на самом деле не совпадают.

Если это не вызовет проблем совместимости между локалями, вы можете обрезать эти символы с помощью replace.

В качестве альтернативы, если вы знаете порядок раскрывающегося списка, получите месяц как число и используйте selectedIndex

currentDate = new Date()
locale = 'en-US'
month = currentDate.toLocaleString(locale, {month:"short"})
document.getElementById("month").value = month.replace(/[^A-z]/g,'')

// Alternatively
//document.getElementById("month").selectedIndex = currentDate.getMonth();
<select name="dates" id="month">
<option value="Jan">Jan</option>
<option value="Feb">Feb</option>
<option value="Mar">Mar</option>
<option value="Apr">Apr</option>
<option value="May">May</option>
<option value="Jun">Jun</option>
<option value="Jul">Jul</option> 
<option value="Aug">Aug</option> 
<option value="Sep">Sep</option> 
<option value="Oct">Oct</option>
<option value="Nov">Nov</option> 
<option value="Dec">Dec</option>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...