【问题标题】:Dropdown menu with JavaScript date objects?带有 JavaScript 日期对象的下拉菜单?
【发布时间】:2011-07-13 00:17:59
【问题描述】:

我想要一个下拉(选择)菜单,其中包含日期(例如 6 月 21 日)作为选项。当用户从下拉列表中选择日期时,将显示(某处)该特定日期的营业时间。目前仅显示当天的营业时间;这是通过 JavaScript 日期对象完成的。

我想知道是否可以采用选定的下拉菜单选项,以某种方式将其转换为适当的日期格式,然后通过我现在拥有的当前函数运行它,该函数仅将当前月份作为其参数和日期。

更重要的是,如果有人对执行此类操作的更好方法有任何想法,甚至是指向一些相关信息的链接,我将不胜感激。目前,我真的不知道有什么可以尝试效仿的例子。

【问题讨论】:

  • 是的,您可以在下拉列表中使用 onchange 事件,并为您在事件期间可以访问的选项附加一个值
  • @ibu,为 onchange +1。正在编辑我的答案...

标签: javascript object date


【解决方案1】:

您可以在服务器上生成数据,以便选项将日期显示为“6 月 21 日”或其他任何内容,并将开放时间作为值。或者该值可以是“21june”或与使用该值作为键和小时作为值的相关对象类似:

var openingHours = {
    '21June' : '08:00am - 05:30pm',
    '22June' : '08:00am - 09:00pm',
    ...
}

等等。然后只需使用所选选项的值即可获取营业时间。还有很多其他方法可以解决这个问题,这取决于时间的可变性以及您想要覆盖多少个日期。

大多数企业只发布公共假期的每周营业时间和特别通知。

【讨论】:

    【解决方案2】:

    每周的营业时间是否有所不同?为什么不将下拉菜单更改为星期几(星期一、星期二等),修改 JS 函数以取整数表示星期几,然后只需修改每个 <option> 元素,使其具有 @987654322 @事件绑定,调用相应整数天数的JS函数?

    例子:

    <select>
      <option onclick="showHoursOfOperation(0);">Sunday</option>   
      <option onclick="showHoursOfOperation(1);">Monday</option>
      <option onclick="showHoursOfOperation(2);">Tuesday</option>
      [ ... ]
    </select>
    

    编辑: 也许是从@ibu 窃取的更优雅的解决方案。 (未经测试,可能不起作用)

    <select onchange="showHoursOfOperation(this.selectedIndex);">
      <option>Sunday</option>
      <option>Monday</option>
      [ ... ]
    </select>
    

    【讨论】:

    • 假期?例如7 月 4 日星期一的小时数为零,但 7 月 11 日星期一是 8-5
    • 可以为“假期”添加另一个&lt;option&gt; 吗?我认为这是防止冗余的最佳方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多