你可以在网格列的下拉列表中将字符转换为大写吗?

问题描述 投票:0回答:1

我有一个Kendo Grid,我的列上有一个自动完成功能,用户可以输入字母进行搜索。 (另一方面 - 我试过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 in并且你有一个小写字母时,它会自动将它转换为大写字母。

谢谢

javascript jquery kendo-grid
1个回答
0
投票

我想这种转换(小写到大写)的目的是将它与数据库条目进行比较。在这种情况下,您可以使用autocomplete-function并添加matcher函数来执行转换:

 <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/

© www.soinside.com 2019 - 2024. All rights reserved.