Можете ли вы преобразовать символы в верхний регистр в выпадающем списке внутри столбца сетки? - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть сетка кендо, где у меня есть столбец с автозаполнением, где пользователь вводит буквы для поиска деталей.(На заметку - я попробовал автозаполнение Kendo и не смог добиться этого, поэтому вместо этого я использовал автозаполнение Jquery). Это работает нормально, но хотелось бы, чтобы при вводе пользователь преобразовывал свои строчные буквы в прописные.Возможно ли это в jquery или мне нужно использовать событие в сетке.

Я пробовал разные сценарии, и, похоже, ни один из них не работает.Как видите, я прокомментировал то, что пытался.У меня есть этот код в других функциях, и он прекрасно работает, но, кажется, я не могу использовать его в сетке.$(this).val($(this).val().toUpperCase());

//Dropdown Autocomplete Part Nbr within Kendo Grid...
function AutoSearchPartNbrGrid(container, options){
   var y = $('<input data-bind="value:' + options.field + '"/>')
   .appendTo(container)
   .autocomplete({
   minLength: 4,
   autoFocus: false,
   source: function (request, response) {
      $.ajax({
        url: String.format('{0}/{1}', $('#hfAutoCompletePartsApiUrl').val(), request.term.toUpperCase()),
        type: 'GET',
        cache: false,
        dataType: 'json',
        success: function (json) {
               response($.map(json, function (data, id) {
               return {label: data.label,value: data.value                                       }
               }));
              }
            });
                        },
        edit: function (e) {
              //$(this).val($(this).val().toUpperCase()); 
              //autopartnbr = $(this).val();

              //Search Fields to populate the parts grid...
              //$(this).on('keypress', function (e) {
              //    var txt = $(this);
              //    if (e.keyCode === 13) {
              //        if (txt.val() !== '') {
              //            autopartnbr = $(this).val();
              //        }
              //        return false;
              //    }
              //});

           //var grid = $('#divconfigs').data('kendoGrid');

           return false;
         },
         select: function (e, ui) {
                 autopartnbr = $(this).val().toUpperCase();

                 var grid = $('#divconfigs').data('kendoGrid');

                 return false;
         },
         error: function (xhr, textStatus, errorThrown) {
                console.log('error', textStatus, errorThrown);
                },
         failure: function (response) { alert(response.responseText) }
                });


   }

Я ожидаю, что когда вы наберете деталь nbr и если у вас есть строчная буква, она автоматически преобразуется в верхний регистр.

Спасибо

1 Ответ

0 голосов
/ 12 апреля 2019

Я полагаю, что цель такого преобразования (строчные в верхние) состоит в том, чтобы сравнить его с записями вашей базы данных. В этом случае вы можете использовать функцию автозаполнения и добавить функцию соответствия для выполнения преобразования:

 <input type="text" name="query" id="query" value="" /> 
 <script>
var names=["MYUPPERCASE-ENTRY1","MYUPPERCASE-ENTRY2","MYUPPERCASE-ENTRY3"];
$( "#query" ).autocomplete({
source: function( request, response ) {
matcher=new RegExp("^"+ $.ui.autocomplete.escapeRegex(request.term ), "i" );         

response( $.grep( names, function( value ) {
          value = value.label || value.value || value;    
          return matcher.test(value.toString().toUpperCase());
        }) );
      },
      minLength: 3
    });
 </script>

Подробнее: https://jqueryui.com/autocomplete/

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