Выберите2 пользовательский поиск - PullRequest
1 голос
/ 06 февраля 2020

У меня есть выбранные номера телефонов в американском формате, мне нужно искать значения с форматированием или без него, используя select 2.

Например.

Выбор значений поля включает

(111) 222-3333

(222) 333-4444

(444) 555-6666

Теперь мой выбор 2 поиска работает, только если я ищу номер в правильном формате (111) 222-3333, мне нужно получить результаты, даже если я ищу 1112223333.

<select class="js-example-basic-single" id="list" name="inventory" placeholder="Select">
   <option value="1">(111) 222-3333</option>
   <option value="2">(222) 333-4444</option>
   <option value="3">(444) 555-6666</option>
</select>

<script>
  $('.js-example-basic-single').select2();
</script>

Спасибо

1 Ответ

1 голос
/ 06 февраля 2020

Вы можете использовать функции поиска ниже для достижения желаемого результата:

<!DOCTYPE html>
<meta charset="utf-8">

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.css" rel="stylesheet" />
    <style>
    </style>
</head>

<body>

    <select class="js-example-basic-single" id="list" name="inventory" placeholder="Select">
        <option value="1">(111) 222-3333</option>
        <option value="2">(222) 333-4444</option>
        <option value="3">(444) 555-6666</option>
    </select>
    <script>
        function ignoreSpecialCharAndWhitespace(params, data) {
            params.term = params.term || '';

            term = params.term.toUpperCase().replace(/ /g, String.fromCharCode(160));
            term = term.replace(/[^a-zA-Z0-9]/g, '');
            text1 = data.text.toUpperCase();
            text1 = text1.replace(/[^a-zA-Z0-9]/g, '');

            if (text1.indexOf(term) > -1 ) {
                return data;
            }
            return false;
        }

        $('.js-example-basic-single').select2({
            matcher: function(params, data) {    
                return ignoreSpecialCharAndWhitespace(params, data);
            }
        });
    </script>
</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...