如何在select标记中保留特定值

时间:2017-03-31 08:21:50

标签: javascript html dropdown

下面是我在JSP中的下拉列表,其中我必须显示年份值,并在文档准备就绪时填充这些年份值,我已编写了JavaScript代码。

<table align="center">
    <tr>
        <td>
            <b>Select Year ::</b>
        </td>
        <td>
            <select id='getYear' onchange="yearChanged(this.value);">

            </select>
        </td>
    </tr>
     </table>

以及填充其中值的相应javascript代码如下

$(document).ready(function() {
    var d = new Date();
    var year = d.getFullYear();

    var select = document.getElementById("getYear");

    for(var i=0 ; i < 8; i++){

        var displayPast10Year = (parseInt(year)) - i;
        var option = document.createElement('option');
        option.text = option.value = displayPast10Year;  
        select.add(option, 0);

     }


    select.valueOf(year);
    $("#getYear").val(year); 
    yearChanged(year);

});

我的要求是下拉(即选择标记)在文档准备好时将年份值显示为2016。我该怎么做?

2 个答案:

答案 0 :(得分:0)

当您执行$("#getYear").val(year);时,您将其设置为2017年。 如果您希望将其设置为2016,则可以删除该行并添加

if (displayPast10Year === 2016) {
  option.selected = 'selected';
}

for循环中,或者只需将其替换为$("#getYear").val(2016)

现在,如果您需要始终为current year - 1,请在上述任一解决方案中将2016替换为year - 1

答案 1 :(得分:0)

change()上致电val(),如下所示:

$(document).ready(function() {
    var d = new Date();
    var year = d.getFullYear();

    var select = document.getElementById("getYear");

    for(var i=0 ; i < 8; i++){

        var displayPast10Year = (parseInt(year)) - i;
        var option = document.createElement('option');
        option.text = option.value = displayPast10Year;  
        select.add(option, 0);

     }


    select.valueOf(year);
    $("#getYear").val(year); 
    //yearChanged(year);
    
    $("#getYear").val("2016").change();

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table align="center">
  <tr>
      <td>
          <b>Select Year ::</b>
      </td>
      <td>
          <select id='getYear'>

          </select>
      </td>
  </tr>
</table>