【发布时间】:2017-08-13 21:34:45
【问题描述】:
我有一个字段是 Select2 小部件字段,它通常以多种形式使用,但是一段时间后复制粘贴相同的代码真的很烦人。因此,我决定最好只为这个字段创建一个小部件。
字段如下
<?= $form->field($model, 'contact_id')->widget(Select2::className(), [
'initValueText' => empty($model->contact_id) ? '' : $model->contact->contact_id . ' ' . $model->contact->fullname,
'options' => [
'class' => 'input-sm',
'id' => 'contact_id',
'placeholder' => '-- Search --',
'disabled' => $disabled,
'onchange' => new JsExpression("get_contact_info($(this).val())"),
],
'pluginOptions' => [
'allowClear' => true,
'language' => [
'errorLoading' => new JsExpression("function () { return 'Waiting for results...'; }"),
],
'ajax' => [
'url' => $fetch_url,
'dataType' => 'json',
'data' => new JsExpression('function(params) { return {q:params.term}; }'),
'results' => new JsExpression('function(data,page) { return {results:data.results.text}; }'),
],
'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
'templateResult' => new JsExpression('function(contact) { return contact.text; }'),
'templateSelection' => new JsExpression('function (contact) { return contact.text; }'),
],
]); ?>
此字段使用 Ajax Fetching,必须允许在创建和更新表单中使用。
谁能指点我正确的方向。
【问题讨论】:
-
没错,创建一个widget并根据需要进行配置。
标签: ajax yii2 widget jquery-select2