这让我疯了。我到处搜索,但解决方案似乎都没有用。
自动完成功能正常,所有标签值都正确加载到自动填充下拉列表中。我可以用鼠标选择任何标签值,并且相同的值将转到文本框。 但是当我使用keyup或keydown选择标签时,文本框会获取值而不是标签。 例如,有了这些数据,
[{"label":"Tom Smith","value":"1234"},{"label":"Tommy Smith","value":"12321"}]
如果我选择"汤姆史密斯",那就在keydown上,文本框将获得价值" 1234"。
我的自动填充代码如下所示:
$('.autocompleteEval').autocomplete({
source: '@Url.Action("autocompleteEvalList")',
minLength: 2,
select: function (event, ui) {
debugger;
event.preventDefault();
$(this).val(ui.item.label);
if (ui.item.value == "-1") {
$('.autocompleteEval').val('');
$('#EvaluatorAjax').hide();
}
else {
$('.autocompleteEval').val(ui.item.label);
$('#EvaluatorAjax').hide();
}
event.preventDefault();
return false;
}
, change: function (event, ui) {
if (!ui.item) {
$('.autocompleteEval').val('');
}
else {
$('.autocompleteEval').val(ui.item.label);
$(this).attr('actionId', ui.item.values);
$('#EvaluatorAjax').hide();
}
}
, search: function (event, ui) {
$('#EvaluatorAjax').css('visibility', '');
}
, response: function (event, ui) {
$('#EvaluatorAjax').css('visibility', 'hidden');
}
}).focus(function (event, ui) {
event.preventDefault();
$('.autocompleteEval').val(ui.item.label);
return false;
});
非常感谢任何帮助/建议(可能将按键事件连接到自动完成,不确定),非常感谢
由于
答案 0 :(得分:0)
这就是我的工作方式。不知何故错过了jQuery API .keyup()和.keydown()函数。我希望这有助于其他人
html代码如下所示 - <input class="autocompleteEval ui-autocomplete-input" id=txtEvaluator/>
已解决的代码如下所示。
$('.autocompleteEval').autocomplete({
source: '@Url.Action("autocompleteEvalList")',
minLength: 2,
select: function (event, ui) {
debugger;
event.preventDefault();
$(this).val(ui.item.label);
if (ui.item.value == "-1") {
$('.autocompleteEval').val('');
$('#EvaluatorAjax').hide();
}
else {
$('.autocompleteEval').val(ui.item.label);
$('#EvaluatorAjax').hide();
}
event.preventDefault();
return false;
}
, change: function (event, ui) {
if (!ui.item) {
$('.autocompleteEval').val('');
}
else {
$('.autocompleteEval').val(ui.item.label);
$(this).attr('actionId', ui.item.values);
$('#EvaluatorAjax').hide();
}
}
, search: function (event, ui) {
$('#EvaluatorAjax').css('visibility', '');
}
, response: function (event, ui) {
$('#EvaluatorAjax').css('visibility', 'hidden');
}
}).keyup(function (event, ui) {
if (ui.item.value == "-1") {
$('.autocompleteEval').val('');
}
else {
$('.autocompleteEval').val(ui.item.label);
}
return false;
}).keydown(function (event, ui) {
if (ui.item.value == "-1") {
$('.autocompleteEval').val('');
}
else {
$('.autocompleteEval').val(ui.item.label);
}
return false;
}).focus(function (event, ui) {
event.preventDefault();
$('.autocompleteEval').val(ui.item.label);
return false;
});