使用 javascript 显示过去 3 个月的下拉列表

2024-03-04

我正在尝试使用下拉列表中的 javascript 显示当月的最后 3 个月(包括总共四个月)

function writeMonthOptions() {
    var months = new Array("01", "02", "03", "04", "05", "06", "07", "08",
            "09", "10", "11", "12");
    var today = new Date();
    var date = new Date(today);
    date.setFullYear(date.getFullYear() - 1);
    var dropDown = document.getElementById("Month_list");
    var i = today.getMonth();
    var optionNames;
    var optionValues;
    var beanData = '<s:property value="month" />';
    while (i < (today.getMonth() + 4)) {
        optionNames = months[i];
        optionValues = today.getFullYear() + '' + months[i];
        dropDown.options[i++] = new Option(optionNames, optionValues);
        if (beanData) {
            if (beanData == (today.getFullYear() + "" + monthsInd[today
                    .getMonth()])) {
                dropDown.selectedIndex = i - 1;
            }
        }
    }
}

简而言之,在视图部分显示当前月份和前 3 个月的下拉列表。 到后端需要以 [YYYYMM] 形式提交。

如果 bean 中已经存在值,则将其显示为在下拉列表中选择。 [保证会在那4个月内]


该函数返回n过去几个月,包括当前月份:

function getLastMonths(n) {

    var months = new Array();

    var today = new Date();
    var year = today.getFullYear();
    var month = today.getMonth() + 1;

    var i = 0;
    do {
        months.push(year + (month > 9 ? "" : "0") + month);
        if(month == 1) {
            month = 12;
            year--;
        } else {
            month--;
        }
        i++;
    } while(i < n);

    return months;

}

Call:

document.write(getLastMonths(4));

Prints:

201211,201210,201209,201208

Demo http://jsfiddle.net/C2Qfe/


然后,在下拉框中添加这些值非常简单:

function writeMonthOptions() {   

   var optionValues = getLastMonths(4);
   var dropDown = document.getElementById("monthList");

   for(var i=0; i<optionValues.length; i++) {
       var key = optionValues[i].slice(4,6);
       var value = optionValues[i];
       dropDown.options[i] = new Option(value, key);
    }

}

只需使用:

writeMonthOptions();

完整示例 http://jsfiddle.net/C2Qfe/2/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 javascript 显示过去 3 个月的下拉列表 的相关文章

随机推荐

  • URI 中的方案是可选的吗?

    最近 我被要求向网站添加一些 Woopra JavaScript 并注意到 URL 以双斜杠开头 即省略了方案 我以前从未见过这个 所以我试图了解更多信息 但我唯一能找到的是Woopra 常见问题解答中的一个项目 http www woop
  • Travis 无法构建 Android 项目,没有 local.properties

    事情是这样的 我已经在 Travis CI 上构建了我的项目好几次了 但每次都会遇到同样的问题 错误日志 What went wrong A problem occurred evaluating root project LiteRead
  • Eclipse 在 Ctrl-S 上跳转到函数名称

    当我按 Ctrl S 将 Java 文件保存在 Eclipse 中时 它会跳转到函数名称 这很烦人 有人知道该怎么办吗 转到 窗口 gt 首选项 gt 常规 gt 按键 您也可以搜索Keys在主首选项窗口中 您很可能添加了一个绑定 当您按下
  • 创建圆形鼠标悬停饱和效果

    我有两个版本的图像 去饱和版本和全彩版本 我想要实现的是悬停效果 其中将鼠标悬停在去饱和图像上会显示图像的彩色版本的圆圈 这有点像将聚光灯照射在饱和度降低的图像上以显示其颜色 然后 当您将鼠标移开时 它会淡回到不饱和状态 我知道我可能可以使
  • 如何扩展 OAuth2 主体

    我们正在开发一个将 OAuth 2 用于两个用例的应用程序 访问后端微服务 使用client credentials 验证应用程序的用户 使用authorization code 因此将用户重定向到 Keycloak 进行登录 大致配置如下
  • 新手入门:ruby 中的实例变量?

    请原谅这个新手问题 但为什么 game score 总是为零 bowling rb class Bowling game score 0 def hit pins game score game score pins end def sco
  • 如何在Python中调用同一类的不同实例?

    我是Python新手 我正在 SimPy 中编写一个模拟来对生产线进行建模 如下所示 机器 1 gt 缓冲区 1 gt 机器 2 gt 缓冲区 2 gt 等等 我的问题 我有一个类 Machine 其中有多个实例 假设当前实例是机器 2 该
  • 如何在 Google App Engine 上用 Python 解析 xml

    为了这以下 XML http www boardgamegeek com xmlapi boardgame 13 如何获取 xml 然后解析它以获取值
  • 使用 fscanf() 与 fgets() 和 sscanf()

    在 实用 C 编程 一书中 我发现结合了fgets and sscanf 用于读取输入 然而 在我看来 仅使用以下方法就可以更轻松地实现相同的目标fscanf 功能 来自书中 想法 而不是示例 int main int age weight
  • HighCharts 动态改变图表类型

    在 ASP NET 站点中使用 HighCharts 2 2 3 看http jsfiddle net wergeld TDLvc http jsfiddle net wergeld TDLvc 代码示例 我的网站设置与 jsFiddle
  • 核心数据 NSManagedObject - 跟踪属性是否更改

    我有一个对象 Config 我想知道是否Account属性上Config已经改变 当这种情况发生时 我想发送一个NSNotification这样所有关心何时的代码Account变化就会知道 我最初的想法是在我的NSManagedObject
  • 哈希映射宏拒绝类型检查,失败并出现误导性(并且看似有缺陷)的错误消息?

    我这里有这两个相关的宏 macro export macro rules hash map key expr gt value expr gt use std iter FromIterator std collections HashMa
  • C 中常量表达式的详细内容是什么?

    C 定义了至少 3 个级别的 常量表达式 常量表达式 非限定 算术常量表达式 整型常量表达式 6 6 第 3 段如下 常量表达式不得包含赋值 递增 递减 函数调用 或逗号运算符 除非它们包含在不存在的子表达式中 评价 那么这是否意味着1 2
  • 如何测试不太可能发生的并发场景?

    例如 这样的地图访问 func pool fPool fetch url string ResultPromise pool cacheLock RLock if rp pres pool cache url pres pool cache
  • 有没有办法覆盖 pytest (python) 中的默认断言?

    我想在每次调用断言时将一些信息记录到文件 数据库中 有没有办法在每次调用断言时覆盖断言或注册某种回调函数来执行此操作 问候 沙拉德 尝试超载AssertionError代替assert 原始断言错误可在异常模块 https docs pyt
  • WPF 是否有按住手势?

    WPF 是否有按住手势 我找不到相关的事件 所以我尝试为自己实现一个 我知道有Stylus类但在 WPF 中它对我没有帮助 如果没有 那就是我的代码 using System using System Collections Generic
  • Array.Empty():为什么 Rider 显示已发生分配,但 BenchmarkDotNet 却没有?

    第一张图片中使用的记忆工具来自 Rider 据我所知 它显示了托管堆的分配 第二张图显示了 BenchmarkDotNet 的结果 为什么 Rider 显示已进行分配 但 BenchmarkDotNet 表明未对堆进行分配 如果我改用下面的
  • 使用水晶报表中的公式更改文本对象的颜色

    I want to change the color of the text in text object using formula in Crystal Report I tried like If mnth ttx weight gt
  • stat_smooth gam 与 gam {mgcv} 不同

    我当时用的是stat smooth函数于ggplot2 决定我想要 拟合优度 并为此使用了 mgcv GAM 我突然想到我应该检查以确保它们是同一型号 stat smooth与 mgcv 相比gam 所以我使用下面的代码来检查 看起来 他们
  • 使用 javascript 显示过去 3 个月的下拉列表

    我正在尝试使用下拉列表中的 javascript 显示当月的最后 3 个月 包括总共四个月 function writeMonthOptions var months new Array 01 02 03 04 05 06 07 08 09