Yii2:使用jQuery,Select2不会将值发送到控制器。
Yii2:使用jQuery,Select2不会将值发送到控制器。
我正在使用Select2小部件:
field($model, 'id_person')->widget( \common\widgets\Select2::classname(), [ 'items' => \yii\helpers\ArrayHelper::map(\app\models\Persons::find()->all(), 'id_person', 'name_person'), 'placeholder' => '', 'class' => 'form-control', 'options' => [ 'id' => 'idPerson' // 用于jQuery。 ] ] ) ?>
然后我使用jQuery将其禁用并设置一个值,正如我在StackOverflow问题中所阅读到的:
function($) { $("#idPerson").prop("disabled", true) .select2('data', {id: 1, a_key: 'John'}); });
它正确地禁用了Select2,但值没有设置,因此控制器没有接收到值。
在使用Yii2框架的Select2插件时,有一个问题是使用jQuery时无法将值发送到控制器。根据以上内容,我们可以得出以下原因和解决方法。
问题的原因是因为被禁用的输入框不会被提交。点击链接values of disabled inputs will not be submitted?可以查看相关信息。
解决方法是使用"readonly"而不是禁用输入框。点击链接https://demos.krajee.com/widget-details/select2#settings可以查看更多关于Select2插件的设置信息。