【发布时间】:2015-04-16 14:04:37
【问题描述】:
我有一个 GridView 显示员工工资单,每个人的姓名旁边都有复选框。参考下图:
如您所见,我还有一个下拉列表。我在我的 jQuery 中设置它以选择列表的最后一个子项,即 2015 年 4 月 10 日 - 2015 年 4 月 16 日 选项。在页面加载时,我可以看到带有这些复选框的此页面(上图)。我的复选框有问题,因为当我单击标题复选框时,它应该选中它下面的所有复选框。但事实并非如此。现在,当我尝试在下拉列表中选择另一个选项时,我得到的结果如下:
复选框的样式发生变化。现在,当我选中标题复选框时,它已经开始工作了,选中了下面的每个复选框。
下拉列表的显示方式如下:
echo Select2::widget([
'name' => 'period',
'data' => $period,
'options' => [
'placeholder' => 'Select period',
'id' => 'period',
'style' => 'width: 400px; height: 34px;'
],
'pluginOptions' => [
'maximumInputLength' => 10,
],
]);
GridView:
<?php \yii\widgets\Pjax::begin(['id' => 'employee']); ?>
<?php
echo GridView::widget([
'dataProvider' => $dataProvider,
//'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
['class' => 'yii\grid\CheckboxColumn',
'options' => ['class' => 'icheckbox_minimal',]
],
'fname',
'lname',
'totalEarnings',
'totalDeductions',
'netPay',
[
'label' => 'Action',
'content' => function ($model, $key, $index, $column) {
if ($model->netPay != null) {
return Html::a('View Payslip', ['view' , 'id' => $model->payslipID], ['class' => 'btn btn-success']);
}else{
return Html::a('Create Payslip', ['create-new', 'id' => $model->user_id], ['class' => 'btn btn-warning']);
}
}
]
],
]);
?>
<?php \yii\widgets\Pjax::end(); ?>
脚本:
<script>
$(document).ready(function(){
$("#period option:last-child").attr('selected', 'selected');
$("#period").change( function()
{
var period = $('#period').val();
if(period != 0){
$.ajax({
url: 'index.php?r=payslip/periods',
dataType: 'json',
method: 'GET',
data: {id: period},
success: function (data, textStatus, jqXHR) {
$.pjax.reload({container:'#employee'});
//alert(data.start);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('An error occured!');
alert('Error in ajax request');
}
});
}
}
);
})
</script>
我的问题是,如何保留/维护复选框的样式?为什么它会改变风格?为什么样式复选框不起作用?
【问题讨论】:
标签: javascript jquery css checkbox yii2