我有一个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部件时,如果您输入的是小写字母,它将自动将其转换为大写字母。
谢谢
答案 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>