Yii, CJuiDatePicker, как заблокировать определенные дни месяца

Так что у меня есть этот виджет на моем Yii _form.php стр.

Можно ли сделать такие вещи, как блокировка определенного дня месяца? Или, может быть, блокировать все понедельники месяца, не позволяя пользователям выбирать любой понедельник.

ОБНОВЛЕНИЯ на основе ответа Хамеда

<script type="text/javascript">

function disableSpecificDays(date) {
//date is an instance of Date
var weekDay = date.getDay(); //  Get the weekday as a number (0-6)
if(weekDay == 1){ //weekDay == 1 means Monday
return false;
}
else {
return true;
}
}

</script>

И на стороне взгляда,

<?php $form->widget('zii.widgets.jui.CJuiDatePicker', array(
'model' => $model,
'attribute' => 'date',
'value' => $model->date,
'options' => array(
'showAnim'=>'fadeIn',
'showButtonPanel' => true,
'minDate'=>'0',
'changeYear' => true,
'dateFormat' => 'yy-mm-dd',
'beforeShowDay' => 'disableSpecificDays',
),
));
?>

Но по какой-то причине он блокирует ВСЕ на указателе даты. Ничего нельзя выбрать вообще. В какой момент я поступил неправильно? Пожалуйста, порекомендуйте.

0

Решение

jqueryUi DatePicker имеет beforeShowDay событие. Вы можете использовать это событие следующим образом:

$this->widget('zii.widgets.jui.CJuiDatePicker',array(
...
'options'=>array(
'showAnim'=>'slide',//'slide','fold','slideDown','fadeIn','blind','bounce','clip','drop'
'showOtherMonths'=>true,// Show Other month in jquery
'selectOtherMonths'=>true,// Select Other month in jquery,
'beforeShowDay' => 'disableSpecificDays', //changed ':' to '=>' AND added quote in between function name.
),
'htmlOptions'=>array(
'style'=>''
),
));
?>

Теперь вам нужно определить disableSpecificDays функция внутри <script> тег:

function disableSpecificDays(date) {
//date is an instance of Date
var weekDay = date.getDay(); //  Get the weekday as a number (0-6)
var monthDay = date.getDate()   //Get the day as a number (1-31)
if(monthDay == 12 || monthDay == 13 || weekDay == 1) //weekDay == 1 means Monday
return false;
else return true;
}

Это отключит 12 и 13 дни каждого месяца, а также отключит понедельники.

Вот две полезные ссылки:

1

Другие решения

Я знаю, что это старая запись, но я обнаружил, что для Yii 1 возвращаемое значение в скобках [] делает свою работу. Так что функция JS должна быть:

<script type="text/javascript">
//DON'T SHOW SUNDAYS
function disableSpecificDays(date) {
//date is an instance of Date
var weekDay = date.getDay(); //  Get the weekday as a number (0-6)
var monthDay = date.getDate();
if(weekDay == 0){
return [false];
}
else {
return [true];
}
}
</script>
0

По вопросам рекламы [email protected]