如何阻止用户在Joomla日历字段中选择今天之前的日期?

时间:2013-02-12 19:20:53

标签: date joomla calendar field

我想在组件adsmanger的搜索模块中自定义Joomla的日历字段,基本上我想:

  • 阻止用户在今天之前选择日期。
  • 阻止用户输入字段,他只能使用日历选择日期。
  • 将当前日期设为默认值

以下是组件中日历字段生成的一部分:

<?php
case 'date':

            $options = array();
            $options['size'] = 16;
            $options['maxlength'] = 16;
            if ($field->required == 1) {
                $options['class'] = 'adsmanager_required';
                $options['mosReq'] = '1';
                $options['mosLabel'] = "$strtitle";
            }
            else 
            {
                $options['class'] = 'adsmanager';
            }
            $return .= JHTML::_('behavior.calendar');
            if ($value != "") {
                if (function_exists("strptime")) {
                    $a = strptime($value, JText::_('ADSMANAGER_DATE_FORMAT_LC'));
                    $timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
                } else {
                    $timestamp = strtotime($value);
                }
                if ($timestamp != null)
                    $value = date("Y-m-d",$timestamp);
                else
                    $value = "";
            }
            $return .=  JHTML::_('calendar', $value, "$field->name", "$field->name", JText::_('ADSMANAGER_DATE_FORMAT_LC'), $options); ?>

1 个答案:

答案 0 :(得分:0)

日历实际上没有办法完全按照您指定的方式执行操作。有一些方法可以让你更接近。

所包含的方法是设置可用年份,至少可以在今年保留它们。

Calendar.setRange(2013, 2020);

javascript函数中还有一个方法可以添加onUpdate处理程序,您可以使用该处理程序编写自己的比较函数,以将日期限制为今天和转发。但是,在Joomla中将函数传递到此位置似乎并不是一个好方法,因为它应该是Calendar.setup()调用的一部分。生成javascript的代码位于libraries/joomla/html/html.php第880行。