2013-05-28 26 views
0

我想知道如果我能得到如何在jQuery的實現這一目標的一些想法:禁用選擇的選擇,如果小時小於實際小時

IDEA

比方說第一個選項使用9小時的範圍內上午11點,我需要jquery來檢查實際的小時,如果它大於11AM將disabled屬性添加到該選項。

當一天結束時,所有選項都必須重置,這意味着上午12點。

FORM

<select class="select" id="newfield3" name="newfield3"> 
<option disabled value="9:00 a 11:00 A.M">9:00 a 11:00 A.M</option> 
<option value="11:00 a 1:00 P.M">11:00 a 1:00 P.M</option> 
<option value="2:00 a 4:00 P.M">2:00 a 4:00 P.M</option> 
<option value="4:00 a 6:00 P.M">4:00 a 6:00 P.M</option> 
</select> 

我在jQuery的初學者,所以我真的很感謝所有幫助我得到。

+0

可能使用jQuery的'當使用列表時使用change()函數,這樣當狀態改變時,它會檢查時間並執行其他任何你需要的操作。 –

+0

它應該檢查onload而不是改變任何想法? – Ered

+0

我相信你現在已經意識到了這一點,但我只想指出用戶可以輕鬆繞過這一點。如果你需要在進入之前確認這一點,請務必在後端添加一些邏輯。 – JClaspill

回答

0

所以這就是我一直在尋找:

$("#newfield3 option").each(function() { 
var $thisOption = $(this); 
var HH = new Date().getHours(); 
var h1 = "9:00 a 11:00 A.M"; 
var h2 = "11:00 a 1:00 P.M"; 
var h3 = "2:00 a 4:00 P.M"; 
var h4 = "4:00 a 6:00 P.M"; 

if (HH >= 9 && HH < 17) { 

if($thisOption.val() == h1) { 

    if (HH >= 10) { 
      $thisOption.prop('disabled', true); 
      $('#newfield3 option[value="' + h2 + '"]').attr("selected", "selected"); 
    } 

} 
if($thisOption.val() == h2) { 

    if (HH >= 12) { 
      $thisOption.prop('disabled', true); 
      $('#newfield3 option[value="' + h3 + '"]').attr("selected", "selected"); 
      $('#newfield3 option[value="' + h2 + '"]').attr("selected", false); 
    } 

} 
if($thisOption.val() == h3) { 

    if (HH >= 15) { 
      $thisOption.prop('disabled', true); 
      $('#newfield3 option[value="' + h4 + '"]').attr("selected", "selected"); 
      $('#newfield3 option[value="' + h3 + '"]').attr("selected", false); 
    } 

} 
if($thisOption.val() == h4) { 

    if (HH >= 17) { 
      $thisOption.prop('disabled', true); 
    } 

} 

} 

}); 
4

你可以嘗試使用

var d = new Date(); 
var n = d.getHours(); 

,並根據n的值,禁用option

+0

好,但我應該怎麼使用IF? – Ered

+0

工作在小提琴上。將它張貼在這裏。 –

+0

tx幫忙@harsha – Ered