我有一个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”);
答案 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等)中是否还有其他错误?