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

时间:2019-04-11 18:48:37

标签: javascript jquery kendo-grid

我有一个Kendo网格,其中的列上具有自动完成功能,用户在其中输入字母以进行零件nbr搜索。 (附带说明-我尝试了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 :(得分:0)

我认为这种转换(小写到大写)的目的是将其与您的数据库条目进行比较。在这种情况下,您可以使用自动完成功能并添加匹配器功能来执行转换:

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