【问题标题】:How to restrict input in typeaheadbasic yii2 extension如何在 typeaheadbasic yii2 扩展中限制输入
【发布时间】:2016-11-22 13:15:26
【问题描述】:

我正在使用 TypeaheadBasic::widget 扩展来自动完成,但我想限制输入。我只想允许数组中包含的项目。

下面是我的代码。

use kartik\typeahead\TypeaheadBasic;
 echo TypeaheadBasic::widget([
      'model' => $model,
      'attribute' => 'client',
      'data' => $clientData,
      'options' => ['placeholder' => 'Filter as you type ...', 'id'=>'client_id_name'],
                    'pluginOptions' => ['highlight' => true],
                ]);

请给我解决方案。提前谢谢!

【问题讨论】:

标签: yii yii2 yii2-advanced-app yii-extensions


【解决方案1】:

如果您只想允许用户从一组选项中进行选择,为什么不使用Select2。这样,您的用户可以键入以过滤选项并选择其中一个。

【讨论】:

    【解决方案2】:

    我上述问题的替代解决方案如下:

    但我不知道这是否是正确/标准的方式..但它对我来说很好:)

    这是我的观点:typeheadbasic 扩展

     $clientData = $my_dynamic_data_arr; // this arr var i used in jquery script for chekcing if name is exists or not
        echo TypeaheadBasic::widget([
                            'model' => $model,
                            'attribute' => 'client',
                            'data' => $clientData,
                            'options' => ['placeholder' => 'Filter as you type ...', 'id' => 'client_profile'],
                            'pluginOptions' => ['highlight' => true],
                        ]);
    

    这是我处理上述问题的 jquery 脚本

     var client_arr = $.makeArray(<?php echo json_encode(array_values($clientData)); ?>); // $clientData is php array variable from above 
    
        $("#clientProfileForm").submit(function(event) {
            var client_name = $("#client_profile").val();
            if ($.inArray(client_name, client_arr) === -1) {
                $("#clientProfileError").html("<spna style='color:red'>Client not exists</span>");
                return false;
            }
            if ($('#client_profile').val() === '') {
                event.preventDefault();
                $("#clientProfileError").html("<spna style='color:red'>Client name is required</span>");
            }
        });
    

    【讨论】:

      猜你喜欢
      • 2016-10-13
      • 2016-05-24
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多