javascript - 您可以在网格列内的下拉列表中将字符转换为大写吗?
问题描述
我有一个 Kendo Grid,其中有一列有一个自动完成功能,用户在其中输入字母以进行零件 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 并且如果您有一个小写字母时,它会自动将其转换为大写。
谢谢
解决方案
我想这种转换(小写到大写)的目的是将它与您的数据库条目进行比较。在这种情况下,您可以使用 autocomplete-function 并添加 matcher-function 来执行转换:
<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>
推荐阅读
- csv - 合并具有相同标题的 csv 文件:使用 xargs 将多个文件传递给 awk
- linq-to-xml - 根据子元素条件选择 XML 元素数组
- javascript - NestJs/Mongoose 同一模型的多个模式
- powershell - 应用程序未检测到“Powershell 编码”击键
- swift - 开关/案例中的错误警告消息,`案例已由以前的模式处理;考虑删除它。`
- javascript - 更改日期/时间字符串格式 javascript
- material-ui - 材质 UI RTL
- unix - grep 可以同时搜索换行符和空字符吗?
- java - Jhipster 扩展微服务解决方案
- sql-server - SSMS 中的 SQLCMD 模式