如何在以下方案中创建选择框组

时间:2013-06-19 09:10:55

标签: javascript jquery html css

目前我有一组日期字符串,这是唯一的

eg.

2012 04 01
2012 04 10
2012 04 25
2012 06 30
2012 06 10
2012 12 01
2013 04 01

我需要做的是创建3个选择框,一个用于一年,一个用于一个月,一个用于一天

问题是我需要维持年月和日之间的关系

例如,首先用户可以查看2012 2013,然后如果2012,04,06,12显示为月,如果选择04作为月,则01,10,25显示为当天

实施是:

                for (var key in data) {
                    year = key.substring(0,4);
                    if ($.inArray(year, yearArr) == '-1'){
                        yearArr.push(year);
                        $('#year').append('<option value="' + year + '">' + year + '</option>');
                    }
                    dateArr.push(key);
                    chtml.push("<tr><td>" + key + "</td><td>" + data[key] + "</td></tr>");
                }

其中Key是每个日期字符串abd dateArr存储所有日期

$("#year").change(function(){
    var month;
    var monthArr = [];
    var selectedValue = $(this).find(":selected").val();
    if (selectedValue !== '-1') {
        $('#month').prop("disabled", false);
        $('#month').empty().append('<option value="-1">Please choose</option>');
        for (var key in dateArr) {
            if (selectedValue == key.substring(0,4)) {
                month = key.substring(4,2);
                if ($.inArray(month, monthArr) == '-1'){
                    monthArr.push(month);
                    $('#month').append('<option value="' + month + '">' + month + '</option>');
                }
            }
        }
    } else {
        $('#month,#day').empty().append('<option value="-1">Please choose</option>');
    }
});

$("#month").change(function(){
    var day;
    var dayArr = [];
    var selectedValue = $("#year").find(":selected").val() + $(this).find(":selected").val();
    if (selectedValue !== '-1') {
        $('#day').prop("disabled", false);
        $('#day').empty().append('<option value="-1">Please choose</option>');
        for (var key in dateArr) {
            if (selectedValue == key.substring(0,6)) {
                day = key.substring(6,2);
                if ($.inArray(day, dayArr) == '-1'){
                    dayArr.push(day);
                    $('#day').append('<option value="' + day + '">' + day + '</option>');
                }
            }
        }
    } else {
        $('#month,#day').empty().append('<option value="-1">Please choose</option>');
    }
});

当选择框年份或月份更改时,附加相应的值,但这不起作用,因为当用户更改月份时,他们可以返回更改年份,如何解决问题?或者建议做任何更简单的方法?感谢

0 个答案:

没有答案