【发布时间】:2011-04-27 06:49:44
【问题描述】:
我有一个附加到文本框的 AjaxControlToolkit.AutoCompleteExtender 控件和三个单选按钮。当用户选择单选按钮时,用于检索 AutoCompleteExtender 中列出的值的服务方法发生更改,如下所示:
$("#radioButtonList input").click(function() {
var selectedValue = $(this).val();
if (selectedValue == 0) {
$find('autoCompleteExtender').set_serviceMethod('AutoCompleteExtenderMethod1');
}
else if (selectedValue == 1) {
$find('autoCompleteExtender').set_serviceMethod('AutoCompleteExtenderMethod2');
}
else if (selectedValue == 2) {
$find('autoCompleteExtender').set_serviceMethod('AutoCompleteExtenderMethod3');
}
$('#textbox').focus();
}
我想确保,如果用户在文本框中已存在文本时选择单选按钮,则会显示基于新服务方法的自动完成值列表(就像用户单击单选按钮一样按钮并然后在文本框中输入)。
我尝试过各种事件触发机制,例如:
var press = jQuery.Event("keypress");
press.ctrlKey = false;
press.which = 77;
$('#textbox').trigger(press);
...每一个...
$('#textbox').keydown();
$('#textbox').keypress();
$('#textbox').keyup();
甚至:
$('#textbox').get(0).value += 'm';
但似乎没有什么会强制触发正确的事件以使自动完成列表与新服务方法的结果一起重新显示。如何使用 Javascript 实现这一点?
编辑:我应该注意:jQuery 事件 在上述每种情况下都正确触发,它们只是不会导致自动完成列表重新出现。我想我还没有找到自动完成扩展器期望强制列表出现的正确事件组合。
【问题讨论】:
标签: javascript asp.net jquery autocomplete ajaxcontroltoolkit