javascript将下拉列表值设置为在IE11中不起作用的月份

时间:2018-07-04 10:48:22

标签: javascript internet-explorer internet-explorer-11

我正在使用以下代码将下拉值设置为当前月份,它在Chrome和Edge中可以使用,但在IE 11中该值为空。

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

month包含值“ Jul”,类型为字符串,我可以将其设置为文本框的值。

如果我手动分配month =“ Jul”,则会在下拉列表中设置该值。

1 个答案:

答案 0 :(得分:1)

IE toLocalString()在字符串中添加了invisible Unicode characters,因此dropdown-option的值和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>