3

我在 ASP.Net Webform 上有一个 jQuery Autocomplete 字段,到目前为止一切都很好。我还有一个 DropDownList,我需要使用 AutoPostBack 触发 onSelectedIndexChanged。

当我更改我的代码以执行 AutoPostBack 时,带有 jQ​​uery AutoComplete 的文本字段返回空白。但是,如果我查看页面的来源,则文本位于文本字段中。如果我现在发布表单,该页面将发回一个空白字段。我的 Google-Fu 在这方面很弱,因为我想不出任何解决方法。

有没有人遇到过这样的问题,自动完成字段在 AutoPostBack 上被空白,你是如何解决的?

如果真的有必要,我可以发布代码,但由于公司政策,我需要先清理很多代码。

4

2 回答 2

1

自动完成字段是如何初始化的?是否在从服务器加载页面时或通过 document.ready 上的自动完成 jQuery 插件设置为空字符串?

如果插件的源代码在 document.ready 上将文本框设置为空字符串,请尝试以下操作:

// Store current textbox value in a var
var temp = $('#mytextbox').val();

// Initialize the autocomplete plugin (winging it on the syntax)
$('#mytextbox').autocomplete();

// Reset the value of the textbox.
$('#mytextbox').val(temp);
于 2009-05-05T23:53:05.827 回答
0

如果您使用 jQuery Autocomplete 插件 1.1,* 修订:$Id:jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $

在选项中添加“autoPostBackSelection: false” 例如:

$.Autocompleter.defaults = {
    inputClass: "ac_input",
    resultsClass: "ac_results",
    loadingClass: "ac_loading",
    minChars: 1,
    delay: 400,
    autoPostBackSelection: false,
    ...

之后,将其添加到 "return true;" 函数末尾的 "selectCurrent() 之前。

if (options.autoPostBackSelection == true) {
        __doPostBack($input.id, "");
      }

例子:

函数 selectCurrent() { ... if (options.autoPostBackSelection == true) { __doPostBack($input.id, ""); } 返回真;}

于 2010-05-31T19:42:30.020 回答