11

我在 HTML 中有 2 个下拉菜单,都代表月份。所以我想要一个像下面这样的验证。

如果我选择第一个下拉月份为四月,那么下一个下拉菜单应该从四月开始。如果第一个更改为六月,则第二个应更改为六月。

<div id="head2" style="width:15%;float:right;margin-left:5px;">
    <select id='gMonth2' onchange="show_month()">
    <option value=''>--Select Month--</option>
    <option selected value='1'>Janaury</option>
    <option value='2'>February</option>
    <option value='3'>March</option>
    <option value='4'>April</option>
    <option value='5'>May</option>
    <option value='6'>June</option>
    <option value='7'>July</option>
    <option value='8'>August</option>
    <option value='9'>September</option>
    <option value='10'>October</option>
    <option value='11'>November</option>
    <option value='12'>December</option>
    </select> 
    </div>

<div id="head1" style="width:15%;float:right;margin-left:5px;">
        <select id='gMonth1'>
    <option value=''>--Select Month--</option>
    <option selected value='1'>Janaury</option>
    <option value='2'>February</option>
    <option value='3'>March</option>
    <option value='4'>April</option>
    <option value='5'>May</option>
    <option value='6'>June</option>
    <option value='7'>July</option>
    <option value='8'>August</option>
    <option value='9'>September</option>
    <option value='10'>October</option>
    <option value='11'>November</option>
    <option value='12'>December</option>
    </select> 
    </div> 

该功能将是:

function show_month()
{
//
}

我应该如何编写该函数?

4

2 回答 2

5

使用 jQuery 很容易:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>

<script>
$(function(){
  $('#gMonth2').change(function(){
    var month = $(this).val();
    $('#gMonth1').val(month);
  });
 });
 </script>

并在第一个选择中跳过 onChange 事件...

这里的工作示例:http: //jsfiddle.net/sCnEZ/1/

于 2012-10-17T07:01:28.127 回答
0

你的 JS 函数可能是这样的:

function show_month(obj) {
    document.getElementById('gMonth1').selectedIndex = obj.selectedIndex;
}

你应该onchange="show_month()"改变onchange="show_month(this)"

看看这个jsfiddle

于 2012-10-17T07:13:54.110 回答