我有一个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并且你有一个小写字母时,它会自动将它转换为大写字母。
谢谢
我想这种转换(小写到大写)的目的是将它与数据库条目进行比较。在这种情况下,您可以使用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>