2011-07-22 19 views
1

私はパンチインとパンチアウトの2つのドロップダウンを持っています。両方とも24時間ですので、0〜23のオプションがあります。ドロップダウンで選択した数よりも大きな数のドロップダウンを開始するためにjavascriptとPHPを使用できる方法はありますか?htmlドロップダウン24時間内外の問題

これらは、コードの塊ですテーブルタグ

<td>Start Time</td> 
    <td> 
     <select name="hourIn" id="hourIn"> 
      <option value="" selected></option> 
     <? for ($hour=0; $hour <= 23; $hour++): ?> 

      <option value="<?=$hour?>"><?=$hour?></option> 
     <? endfor ; ?> 
     </select> 
    <td>End Time</td> 
    <td> 
     <select name="hourOut" id="hourOut"> 
      <option value="" selected></option> 
     <? for ($hour=0; $hour <= 23; $hour++): ?> 

      <option value="<?=$hour?>"><?=$hour?></option> 

     <? endfor ; ?> 
     </select> 

答えて

1

はい、JavaScriptで:

<!doctype html> 
<html> 
    <head> 
     <title>Example</title> 
    </head> 

    <body> 
     <form name="myForm" action="#" method="post"> 
      <select name="checkIn"> 
       <!-- options --> 
      </select> 

      <select name="checkOut"> 
       <!-- options --> 
      </select> 
     </form> 
    </body> 

    <script type="text/javascript"> 
     var checkIn = document.forms["myForm"].elements["checkIn"], 
      checkOut = document.forms["myForm"].elements["checkOut"]; 

     checkIn.onclick = function() { 
      if (this.value == 23) { 
       checkOut.value = 0; 
      } 
      else { 
       checkOut.value = this.value + 1; 
      } 
     } 

     checkOut.onclick = function() { 
      if (this.value <= checkIn.value) { 
       this.value = checkIn.value + 1; 
      } 
     } 
    </script> 

</html> 

あなたはエッジケースのためのロジックをいじる必要があるかもしれませんが、それはそれの要点です。

2

はいのオープンとクローズを気にいけません。

$('#punchout').val($('#punchin').val()+1); 

もちろん、あなたがpunchin値が(それを行う必要がありますmod 24)23に等しいときに別の何かをする必要があります:あなたはjQueryを使用している場合は、ちょうどこのような何かを。また、別の形式を使用している可能性があります。特定のソリューションを実装することは、私があなたに何か他の情報を十分に与えていないためです。