将jQuery DatePicker拆分为隐藏字段

时间:2013-05-14 10:11:59

标签: jquery-ui datepicker

我们有一个PHP预订系统,通过使用6个删除列表将6个隐藏变量发送到结果页面进行日期搜索。

start_day,start_month,start_year,end_day,end_month,end_year

然而,我想使用2个jQuery日期选择器,并且为了参数起见,我们使用以下日期格式设置它们。

$( "datefrom_picker" ).datepicker( "option", "getDate", "dd-mm-yy" );
$( "datefrom_picker2" ).datepicker( "option", "getDate", "dd-mm-yy" );

我的问题是有没有办法分割jQuery datepicker日期格式,以便它可以将六个日期部分发送到结果页面?例如,我试图在第一个日历中弄清楚这一点。

隐藏的表单字段:

<input name="start_month" id="start_month" type="hidden" value="" />
<input name="start_day" id="start_day" type="hidden" value="" />
<input name="start_year" id="start_year" type="hidden" value="" />

jQuery

$( "#datefrom_picker" ).datepicker( "option", "getDate", "dd-mm-yy" );
      toDateModComboFlights = ($('#datefrom_picker').datepicker("getDate"));
        if (toDateModComboFlights!=null) {
            document.forms['frmCheckAvailability'].elements['start_day'].value = toDateModComboFlights.dd();
            document.forms['frmCheckAvailability'].elements['start_month'].value = toDateModComboFlights.mm();
            document.forms['frmCheckAvailability'].elements['start_year'].value = toDateModComboFlights.yy();
}

感谢您在正确的方向上提供任何帮助。

1 个答案:

答案 0 :(得分:1)

您需要使用datepicker的onClose选项,以便每次选择日期时都会更新隐藏字段。你说你有6个隐藏的字段,但你只显示3.我猜测丢失的字段是“end_month”等等。

初始化datepicker并创建一个类似的函数

 $( "#datefrom_picker" ).datepicker({
    dateFormat: "mm-dd-yy",
    onClose: function(dateText) {
      //dateText is a string matching your desired format
      var dateParts = dateText.split("-");//spilts string using dash

      //now set each input field (you can figure out the other three)
      $('#start_month').val(dateParts[0]);
      $('#start_day').val(dateParts[1]);
      $('#start_year').val(dateParts[2]);
    },

 });

您可以以相同的方式设置第二个日期选择器,但改为引用其他隐藏值。