Select2 - 在“open”事件中从服务器加载数据并在此之后禁用ajax搜索

时间:2018-04-16 11:49:27

标签: ajax yii2 jquery-select2

我正在使用select2,我想要这个:

  1. 在页面加载时将空Select2创建为空。
  2. 当用户第一次打开时,所有数据都从服务器加载。
  3. 之后不再需要ajax调用服务器 - 只需通过给定的结果数组进行搜索。
  4. 我已经完成了这个(yii2语法):

    'pluginOptions' => [
            'minimumInputLength' => 0,
            'ajax' => [
                'url' => "/service/autocomplete",
                'dataType' => 'json',
                'delay' => 250,
                'method' => 'POST',
                'data' => new JsExpression('function(params) { return {mode: "district_metro", s: params.term, service_id: "'.$service_id.'", clinic_type_id: "'.$clinic_type_id.'", cityid: "'.$curcity->id.'", limit:500}; }'),
                'processResults' => new JsExpression($resultsJs),
                'cache' => true
            ],
            'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
            'templateResult' => new JsExpression('formatRepo'),
            'templateSelection' => new JsExpression('formatRepoSelection'),
        ],
    

    我已将minimumInputLength设置为零 - 因此,当用户打开select2时,所有resulats实际上都是从服务器加载的,没关系。

    但是当用户试图键入某个内容时,会触发另一个ajax调用,但我不需要这个ajax调用,因为所有数据都已加载。

    我的问题是:有没有办法在第一个之后禁用ajax搜索?

    讽刺英语不好。

0 个答案:

没有答案