1

如何为 jquery ui 时间选择器动态设置 hourMin、miniteMin 值,例如如果日期是今天,我希望允许用户仅在当前时间上方进行选择,如果日期大于当前日期,则允许用户从 0 到 23 小时进行选择。

我试过这段代码但没有工作

        $('#test1').timepicker({
            hourMin: 0,
            hourMax: 23
        });
        $("#test").datepicker({
            dateFormat: 'dd/mm/yy',
            onSelect:function(selectedDate){
                if(selectedDate == $.datepicker.formatDate('dd/mm/yy', new Date())){
                    $('#test1').timepicker('option','hourMin', new Date().getHours());
                }else{
                    $('#test1').timepicker('option','hourMin', 0);
                }
            }
        });

如果这个插件有任何问题,任何人都可以推荐最适合我要求的插件。

4

1 回答 1

1

如果这个(http://trentrichardson.com/examples/timepicker/)是您正在使用的插件,那么是的,有一个选项。

http://trentrichardson.com/examples/timepicker/#rest_examples

var nowDate = new Date();
$('#rest_example_3').datetimepicker({
    minDate: new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.​getHours(),nowDate.getMinutes(), nowDate.​​​​​​​getSeconds(), 0)
});

您可以设置 minDateTime(或 minDate)来实现您想要的。

编辑: 在运行时重置日期选择器启动的示例解决方案(hack):

Javascript:

        function initDP()
        {
            var nowDate = new Date();
            $('#dpField').datetimepicker({
                minDate: new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate(), nowDate.getHours(), nowDate.getMinutes(), 0, 0)
            });
        }

        function resetDP()
        {
            $('#dpField').die();
            $('#dpField').remove();
            $('#parentId').append('<input type="text" id="dpField" />');
            initDP();
        }
        $(document).ready(function()
        {
            initDP();

            $('#resetDate').click(function(){
                resetDP();
            });
        });

    </script>

html:

<body>
<div id="parentId">
    <input type="text" id="dpField" />
</div>
<button id="resetDate">Reset DP</button>

</body>
于 2012-12-24T16:55:53.207 回答