如何在页面呈现时使用Javascript预选项目

时间:2013-01-12 15:21:01

标签: listbox listboxitem

我有一个drupal渲染的webform,它为SELECT列表生成以下HTML。该列表主要用于预订餐厅的餐桌。我的客户希望我根据一天中的时间预先选择一顿饭。因此,如果它在午夜和下午3:00之间,应该自动预先选择午餐。下午3:00至晚上10:30之后,表格应显示预选晚餐。

<select class="form-select required" name="submitted[meal]" id="edit-submitted-meal">
  <option selected="selected" value="1">Lunch</option>
  <option value="2">Dinner</option>
  <option value="3">Sunday Dining</option>
</select>

我创建了以下JS片段,希望实现目标,但它似乎不适用于Page load

window.onload() {
  var today = new Date("<?php echo date("Y-m-d H:i:s"); ?>");
  var day = date.getDay();
  var hour = date.getHours();
  var meallist = document.getElementbyId("#edit-submitted-meal");
  if  (day == 0) {
    meallist.options[3].selected==true;
  }
  else {  
    if (hour > 15 && hour < 22) {
      meallist.options[2].selected==true;
    }
    else if (hour > 22 && hour < 24 {
      meallist.options[1].selected==true;
    }
    else if (hour > 0 && hour < 15 {
      meallist.options[1].selected==true;
    }
  }
}

非常感谢任何帮助。提前谢谢。

PS:PHP代码将日期注入到javascript中,因此当呈现页面时,行变为var today = new Date(“2013-01-15 15:49:45”);

1 个答案:

答案 0 :(得分:0)

您的javascript语法错误

   window.onload(){
      //your code here
   }

应该是

   window.onload = (function(){ 
      //your code here
    });

同样在使用document.getElementById时,您不希望包含“#”

用于设置变量,如

 meallist.options[1].selected==true;

你只想使用单个=

  meallist.options[1].selected=true;

还要记住,options数组是基于0的。 E.g选项值= 3实际上是

  meallist.options[2] not [3]

可在此处找到简化版本 http://jsfiddle.net/N7Yhr/

您的控制台窗口(firebug等)中是否还有其他错误?