2013-01-12 62 views
0

我有一個drupal呈現的webform,它爲SELECT列表生成以下HTML。該清單主要用於在餐廳預訂餐桌。我的客戶希望我根據一天的時間預選餐點。所以如果午夜到下午3點之間午餐應該自動預選。下午3點至10點30分之後,表格應顯示預先選好的晚餐。如何在頁面呈現時使用Javascript預選項目

<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希望達到的目標,但它似乎並沒有在網頁加載

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

您有一個錯誤在你的JavaScript語法

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

應該

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

而且使用的document.getElementById當你不想包含 '#'

和用於設置變量,如

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

你只需要使用一個單一=

meallist.options[1].selected=true; 

的同時也要記住,選項數組是基於0。 E.g期權價值= 3實際上是

meallist.options[2] not [3] 

的簡化版本可以在這裏找到 http://jsfiddle.net/N7Yhr/

你有你的控制檯窗口任何其他錯誤(螢火蟲等)?

+0

感謝您的回覆。我修復了其他一些錯誤。如果你注意到其他情況下沒有右括號。此外,變量日期應該是今天。這樣做後,我仍然有一個錯誤報告由螢火蟲TypeError:document.getElementbyId是不是一個函數 http://potlim.sastratechnologies.biz/potlibookonline 行122 –

+0

我修正了我上面提到的錯誤,「b」是沒有大寫 - document.getElementbyId實際上應該是document.getElementById。現在我沒有任何錯誤,但在頁面加載時,如果當前時間在下午3點後,它不會顯示「晚餐」 –

+0

我已經更新了小提琴。請看一下。 –

相關問題