2011-11-18 52 views
1

我是新來的java腳本。我想驗證從下拉列表中選擇的時間是否超過當前時間。我想驗證從下拉列表中選擇的時間是否過去當前時間

例如:
用戶選擇2:00pm而當前時間爲1:00pm,現在下面的錯誤應該彈出:

您所選擇的時間是在當前時間之前。

我該怎麼做?以下是我的下拉列表。

<?php 
$start = strtotime('12:00am'); 
$end = strtotime('11:30pm'); 

echo '<select name="time">'; 
for ($i = $start; $i <= $end; $i += 1800) 
{ 
    echo '<option>' . date('g:i a', $i); 
} 
echo '</select>'; 


?> 

我試過以下方法,但是我無法做到這一點。

<script type="text/javascript" language=JavaScript> 
function validate_time(elmnt) 
{ 
    var date_in = new date(elmnt); 
    var date_now = new date(); //returns current date by default; 
    if(date_in<date_now){ alert('The time you have selected is before the current time.'); 
} 
</script> 

</head> 
<body> 



<div align="left"> 
<?php 


$start = strtotime('12:00am'); 
$end = strtotime('11:30pm'); 

echo '<select name="time">'; 
for ($i = $start; $i <= $end; $i += 1800) 
{ 
echo '<option>' . date('g:i a', $i); 
} 
echo '<select name=time onchange="OnChange(this.form.select)">'; 
echo '</select>'; 

?> 

回答

0

爲select元素的onchange()屬性編寫事件處理函數。將它放在文檔標題部分的< script>標記中。然後將其附加到您選擇的元素。事情是這樣的:

<script type="text/javascript" language=JavaScript> 
function validate_time(elmnt) 
{ 
    var date_in = new date(elmnt); 
    var date_now = new date(); //returns current date by default; 
    if(date_in<date_now){ alert('The time you have selected is before the current time.'); 
} 

+0

日期構造函數需要一個字符串,但也許沒有格式化你是這樣的。嘗試將其轉換爲utc。否則,這就是事件的處理方式。 –

0

你可以用兩種方法做到這一點。 你可以使$ start = date(「U」);這開始到當前時間。

你可以驗證在PHP端。通過檢查日期(「g:我a」)> $ _POST ['時間']

爲了在JavaScript中執行它,您依賴於系統時間設置爲正確的值,因爲JavaScript是客戶端。

在javascript中最簡單的方法是在jquery中加載。並設置id =「time」以及name =「time」。

然後你可以做一個更改功能,並將其與現在使用... var now = new Date();

相關問題