jQueryオートコンプリートでAutoPostBackのテキストが失われる
-
05-07-2019 - |
質問
ASP.Net WebformにjQueryオートコンプリートフィールドがあり、これまですべてがうまく機能していました。また、AutoPostBackでonSelectedIndexChangedを起動する必要があるDropDownListもあります。
AutoPostBackを実行するようにコードを変更すると、jQuery AutoCompleteが含まれるテキストフィールドが空白に戻ります。ただし、ページのソースを見ると、テキストはテキストフィールドにあります。フォームを投稿すると、ページは空白のフィールドを送り返します。私のGoogle-Fuはこの問題を回避できませんでした。
AutoPostBackでオートコンプリートフィールドが空白になるなど、このような問題を抱えている人はいますか?
本当に必要な場合はコードを投稿できますが、会社のポリシーのために、できる限り多くのコードをサニタイズする必要があります。
解決
オートコンプリートフィールドはどのように初期化されますか?サーバーからのページ読み込み時、または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);
他のヒント
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, "");
}
例:
function selectCurrent(){ ... if(options.autoPostBackSelection == true){ __doPostBack($ input.id、""); } trueを返します。 }