День добрый.
Во view есть виджет Select2
<?= $form->field($model, 'subscriber', [
'template' => '
<div class="form-group">
<label for="field-1" class="col-sm-3 control-label">Абонент</label>
<div class="col-sm-5">
{input}
</div
</div>
'
])->widget(Select2::classname(), [
'options' => [
'placeholder' => 'Введите номер ...'
],
'pluginOptions' => [
'allowClear' => true,
'minimumInputLength' => 3,
'language' => [
'errorLoading' => new JsExpression("function () { return 'Поиск результатов...'; }"),
],
'ajax' => [
'url' => $url,
'dataType' => 'json',
'data' => new JsExpression('function(params) { return {q:params.term}; }')
],
'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
'templateResult' => new JsExpression('function(subscriber) { return subscriber.text; }'),
'templateSelection' => new JsExpression('function (subscriber) { return subscriber.text; }'),
],
'pluginEvents' => [
"select2:selecting" => "function() { return searchDataAppeal(); }",
],
]) ?>
после того как пользователь выбрал нужное значение вызываю функция через:
"select2:selecting" => "function() { return searchDataAppeal(); }",
Сама функция JS выглядит так:
function searchDataAppeal() {
var subscriber = $('#appealform-subscriber').select2("data")[0]. id; // получаем текст пусто значение
var subscriber = $('#appealform-subscriber').select2("data")[0].text; // получаем текст "Поиск результатов..."
var subscriber = $('#appealform-subscriber').select2("data")[1]. id; // получаем: Uncaught TypeError: Cannot read property 'id' of undefined
//alert(subscriber);
}
В чем проблема? Или как получать правильно выбранный option?