jQuery自动完成在AutoPostBack上丢失文本

时间:2009-05-05 22:12:23

标签: asp.net jquery webforms autocomplete autopostback

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

当我更改代码以执行AutoPostBack时,其上包含jQuery AutoComplete的文本字段将返回空白。但是,如果我查看页面的来源,则文本位于文本字段中。如果我现在发布表单,页面将发回一个空白字段。我的Google-Fu在这方面很弱,因为我无法为它做任何解决方法。

有没有人遇到过类似的问题,自动填充字段会在AutoPostBack上消失,你是如何解决这个问题的?

如果确实有必要,我可以发布代码,但是由于公司政策的原因,我需要先对其进行清理。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

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

在选项Ex:

中添加“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, "");
      }

示例:

  

function selectCurrent(){       ...         if(options.autoPostBackSelection ==   是的){           __doPostBack($ input.id,“”);         }         返回true;       }