繁体   English   中英

Yii2未获取禁用下拉列表或文本字段的值

[英]Yii2 Doesn't Get the Value of Disabled Dropdown List or Textfield

我想禁用某些文本字段和下拉列表,以防止用户更改其值。 但每当我尝试时,它都不会收集/获取特定禁用文本字段或下拉列表的数据。

这是我显示下拉列表的视图。 它在for循环中:

echo $form->field($model1[$i], 'earning_item_id')->widget(Select2::classname(), [
    'data' => $earningslistData,
    'options' => ['placeholder' => '', 'prevOptionID' => $model1[$i]->earning_item_id, 'prevOptionName' => $earningslistData[$model1[$i]->earning_item_id], 
                    "name" => "EarningDetails[".$i."][earning_item_id]", "row_count1" => $i],
    //'disabled' => true,
    'pluginOptions' => [
        'allowClear' => true,
        'label' => false
    ]
]);

以下是它们在不禁用它们的情况下的样子:

在此输入图像描述

然后,当我保存它时,它看起来像这样:

在此输入图像描述

但是,当我禁用下拉列表时,它会给我这个:

在此输入图像描述

我认为全名来自我的模型,但我不知道为什么:

public function getFullName() 
{
    return $this->user ? $this->user->fname . ' ' . $this->user->lname : 'Full Name';
}

禁用文本字段时,它会一样:

echo $form->field($model, 'user_id')->widget(Select2::classname(), [
    'data' => $listData,
    'options' => ['placeholder' => 'Select a Staff'],
    'disabled' => true,
    'pluginOptions' => [
        'allowClear' => true,
    ],
])->label('Employee Name');

我在表单字段中使用Kartik小部件。 有没有办法解决这个问题? 请告诉我怎么样。

编辑

感谢下面的评论者,我发现了disabledreadonly之间的区别。 由于这是一个下拉列表,这就是我所做的:

echo $form->field($model, 'user_id')->widget(Select2::classname(), [
    'data' => $listData,
    'options' => ['placeholder' => 'Select a Staff', ],
    'pluginOptions' => [
        'allowClear' => true,
    ],
])->label('Employee Name');

echo $form->field($model, 'user_id')->widget(Select2::classname(), [
    'data' => $listData,
    'options' => ['placeholder' => 'Select a Staff', 'style' => 'display:none'],
    'pluginOptions' => [
        'allowClear' => true,
    ],
])->label('');

禁用的html表单字段不会提交,问题不在于yii本身。 在这种情况下,解决方案是拥有相同字段的2个副本,其中一个作为已包含的已禁用,另一个在原始字段之后隐藏,其值与下面相同。

echo $form->field($model1[$i], 'earning_item_id')->hiddenInput()->label('');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM