0

我使用 datepicker 插件构建了一个自定义选择器,它只让我在一年的两个学期之间进行选择。它必须是 1 月至 6 月或 7 月至 12 月。

<script>
$(document).ready(function() {
$( "#semester" ).datepicker({
    stepMonths: 6,
    nextText: "Next semester",
    prevText: "Previous semester",
    monthNames: ["January - June", "", "", "", "", "", "July - December", "", "", "", "", ""]
});
$( "#semester" ).datepicker('setDate', new Date(2012,0,1));
});
</script>

<style>
.ui-datepicker-calendar {
    display: none;
}
</style>

好吧,我还不能发布图片,但它基本上给了我一个像“一月至十二月”这样的单行字。向右滚动给我“2012 年 7 月至 12 月”,依此类推。

我称之为使用

<div id="semester" name="semester" class="date-picker"></div>

在带有标准提交按钮的标准表单内。

现在,它看起来正是我想要的方式,因为我不想要一个,<input type="text">但问题是根据 print_r($_POST),这种方式不会发送数据,但表单中的其他元素是。我显然在这里遗漏了一些东西。

注意:我决定基本上使用 JQuery 来进行设计偏好,因为 datepicker 看起来很整洁。虽然,我现在意识到为此使用 JQuery 可能有点矫枉过正,但既然我已经做到了这一步,我想完成它。

此外,如果有人对我如何实现这一点有更好/更简单甚至同样巧妙的想法,请告诉我。提前致谢。

编辑:我在这里找到了另一个主题,其中我也遇到了同样的问题:请参阅答案。显然,一旦我隐藏了日期,就无法选择日期。也许这个问题的答案将包括一个涉及setDate? 我不知所措。

4

1 回答 1

0

表单提交中不包含 Div 元素,即使具有 name 属性也是如此。您要使用的是隐藏输入,并使用您的日期选择器更改此输入的值。

$( "#semester" ).datepicker({
    stepMonths: 6,
    nextText: "Next semester",
    prevText: "Previous semester",
    monthNames: ["January - June", "", "", "", "", "", "July - December", "", "", "", "", ""],
    onChangeMonthYear: function(year, month) {
        $('#semesterInput').val(month + ", " + year);
    }
});

HTML:

<div id="semester" class="date-picker"> </div>
<input type="hidden" id="semesterInput" name="semester" />

此外,请参阅jQuery Datepicker 文档

于 2012-10-07T08:10:24.467 回答