0

我的页面中有一个下拉框,如下所示:

<select id="event_name" style="width:248px;" onchange="updatecollectbasic()" onblur="changecolor()" name="event_name" class="styled">
     <option <? if( $event_name == "") echo 'selected';?> value="">Select</option>
         <option <? if( $event_name == "Birthday") echo 'selected';?> value="Birthday">Birthday</option>
         <option <? if( $event_name == "Christmas") echo 'selected';?> value="Christmas">Christmas</option>
         <option <? if( $event_name == "Hanukah") echo 'selected';?> value="Hanukah">Hanukah</option>
         <option <? if( $event_name == "Graduation") echo 'selected';?> value="Graduation">Graduation</option>
         <option <? if( $event_name == "Confirmation") echo 'selected';?> value="Confirmation">Confirmation</option>
         <option <? if( $event_name == "Barmitzvah") echo 'selected';?> value="Barmitzvah">Barmitzvah</option>
         <option <? if( $event_name == "Batmiztvah") echo 'selected';?> value="Batmiztvah">Batmiztvah</option>
         <option <? if( $event_name == "Wedding") echo 'selected';?> value="Wedding">Wedding</option>
         <option <? if( $event_name == "Shower") echo 'selected';?> value="Shower">Shower</option>
         <option <? if( $event_name == "Other") echo 'selected';?> value="Other">Other</option>
    </select>

和另一个输入框来获取“日期”,它也附有 jQuery 日期选择器:

<input id="event_date" type="text" onchange="updatecollectbasic()" name="event_date" value="<?=$event_date?>" class="inputtext2 table_ip" style="width : 90px;"/>

and based on the selection, the date should be choosen, But when the selected option is "christmas", I need to populate the date of christmas in the input field.

现在,我使用脚本将其填充为:

if  ($('#event_name').val() == "Christmas") {
                    $('#event_date').val("12/25/2012");
                } else {
                    $('#event_date').val("");
                }

但是,在这里我需要将圣诞节日期设置为“2013 年 12 月 25 日”作为日期过去,同样在“2013 年 12 月 25 日”过去之后,如果进行此选择,则需要显示明年的圣诞节日期. 如何使用javascript来做到这一点。提前致谢。

4

3 回答 3

0

使用 Date() 或使用服务器端代码获取当前月、日和年。

如果月份为 12 且日期为 26 或更大,则返回 '12/25/当年 + 1' 否则返回 '12/25/当年'

于 2013-01-05T06:02:20.257 回答
0

代替 :

$('#event_date').val("12/25/2012");

用这个 :

$('#event_date').val("12/25/" + (new Date()).getFullYear());

注意

从 26 日到 31 日,这将是不准确的。请参阅N Rohler 的回答以避免它。

于 2013-01-05T06:02:29.507 回答
0

您需要包含一些逻辑来检查您在当年的位置:

var d = new Date();
var y = d.getFullYear();
if (d.getMonth() == 11 && d.getDate() > 25)
   y += 1;
$('#event_date').val("12/25/" + y);
于 2013-01-05T06:05:54.433 回答