0

我们有一个 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();
}

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

4

1 回答 1

1

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

初始化日期选择器并像这样创建一个函数

 $( "#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]);
    },

 });

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

于 2013-05-14T22:29:31.703 回答