2012-01-12 25 views
1

次のスクリプトで行ったDD-MM-YYYY形式のカレンダー日付を選択リストに入力する必要がありました。選択リストに次の90日の日付が入力されます。土曜日、月曜日、水曜日の選択リスト/ドロップダウンにjqueryスクリプトを入力する

クライアントのリクエストが変更され、土曜日、月曜日、または水曜日の場合にのみ選択リストに日付を記入したいと思っています。これを解決できませんでしたが、スクリプトを修正しようとしましたが動作しませんでした。

以下のスクリプトは動作しています。この分野の助けがあれば幸いです。

<script> 
$(function(){ 
    function pad(n){return n<10 ? '0'+n : n} 
    var date = new Date(); 
    var selectElement = $('<select name="dddDate" class="ddDate" >'), optionElement; 
    for (var count =0; count < 90; count++){ 
     formattedDate = pad(date.getUTCDate()) + '-' + pad(date.getUTCMonth()+1) + '-' + date.getUTCFullYear(); 
     optionElement = $('<option>') 
     optionElement.attr('value',formattedDate); 
     optionElement.text(formattedDate); 
     selectElement.append(optionElement); 
     date.setDate(date.getDate() +1); 
    } 
    $('#ddDate').append(selectElement); 
}); 
</script> 

<body> 
<div id="ddDate"> </div> 
</body> 

答えて

3

Date.getDay():Dateの曜日フィールドを返します。戻り値は、0(日曜日)から6(土曜日)の間です。 http://jsfiddle.net/UvDEa/

$(function(){ 
    function pad(n){return n<10 ? '0'+n : n} 
    var date = new Date(); 
    var selectElement = $('<select name="dddDate" class="ddDate" >'), optionElement; 
    for (var count =0; count < 90; count++){ 
     var day = date.getUTCDay(); 
     if (day == 6 || day == 1 || day == 3) { 
      formattedDate = pad(date.getUTCDate()) + '-' + pad(date.getUTCMonth()+1) + '-' + date.getUTCFullYear(); 
      optionElement = $('<option>') 
      optionElement.attr('value',formattedDate); 
      optionElement.text(formattedDate); 
      selectElement.append(optionElement); 
     } 
     date.setDate(date.getDate() +1); 
    } 
    $('#ddDate').append(selectElement); 
    }); 
+0

私の頭脳が死んでいるので、実際のスクリプトを修正していただけたら幸いです。私は空の選択リストを表示しようとしました – Learning

+0

@StudentDubai fiddle:http://jsfiddle.net/UvDEa/ – itea

1

ことがgetDay()関数にチェックした場合にだけ追加します。

if(formattedDate.getDay() == 1 || formattedDate.getDay() == 3 || formattedDate.getDay() == 6) 
{ 
    optionElement = $('<option>'); 
    optionElement.attr('value',formattedDate); 
    optionElement.text(formattedDate); 
    selectElement.append(optionElement); 
} 

EDIT:

$(function(){ 
function pad(n){return n<10 ? '0'+n : n} 
var date = new Date(); 
var selectElement = $('<select name="dddDate" class="ddDate" >'), optionElement; 
for (var count =0; count < 90; count++){ 
    formattedDate = pad(date.getUTCDate()) + '-' + pad(date.getUTCMonth()+1) + '-' + date.getUTCFullYear(); 
if(formattedDate.getDay() == 1 || formattedDate.getDay() == 3 || formattedDate.getDay() == 6) 
{ 
    optionElement = $('<option>'); 
    optionElement.attr('value',formattedDate); 
    optionElement.text(formattedDate); 
    selectElement.append(optionElement); 
} 
    date.setDate(date.getDate() +1); 
} 
$('#ddDate').append(selectElement); 

})。

+0

何も表示されません...選択リストが表示されない – Learning

3

これには.getUTCDay()を使用できます。

ここ
if ($.inArray(date.getUTCDay(), [6, 1, 3]) > -1) { 
    // Include this date 
} 

61は月曜日で、3は水曜日で、土曜日です。

0

これは機能するはずです。

$(function(){ 
function pad(n){return n<10 ? '0'+n : n} 
var date = new Date(); 
var selectElement = $('<select name="dddDate" class="ddDate" >'), optionElement; 
for (var count =0; count < 90; count++){ 
    formattedDate = pad(date.getUTCDate()) + '-' + pad(date.getUTCMonth()+1) + '-' + date.getUTCFullYear(); 
if(date.getUTCDay() == 1 || date.getUTCDay() == 3 || date.getUTCDay() == 6) 
{ 
    optionElement = $('<option>'); 
    optionElement.attr('value',formattedDate); 
    optionElement.text(formattedDate); 
    selectElement.append(optionElement); 
} 
    date.setDate(date.getDate() +1); 
} 
$('#ddDate').append(selectElement); 
関連する問題