OK
2 つのテキスト ボックスと 1 つのボタンを含む ASP.NET 4.0 ユーザー コントロールがあるセットアップがありCancel
ます。
最初のテキスト ボックスには Ajax Control Toolkit Autocomplete Extender が接続されており、ユーザーが何かを入力し始めると、一致するスイスの郵便番号のリストが表示されます。魅力のように機能します。
またDefaultButton
、ユーザー コントロールの最も外側<asp:Panel>
を保存 (OK) ボタンに設定しました。
ここで、ユーザーが何かを入力し始め、そのケースの選択肢の「オートコンプリート」リストを取得し、そのオートコンプリート リストから項目の 1 つを選択するケースに遭遇しています。ユーザーが選択を行うために押すEnterと、データがテキストボックスにうまく入力されますが、ユーザーコントロールも閉じられます (モーダルポップアップとして開かれEnterますDefaultButton
)。ハンドラが実行されます。
Enterそのキーストロークがパネルに泡立つのを「飲み込む」または停止する方法はありますか?
これが私のマークアップとコードです:
<script type="text/javascript">
function IAmSelected(source, eventArgs) {
var textval = eventArgs.get_text().split(' - ');
$('#<%= tbxZipCode.ContainedTextBoxClientID %>').val(textval[0]);
$('#<%= tbxCity.ContainedTextBoxClientID %>').val(textval[1]);
// here, I tried "return false;" - didn't work either....
source.preventDefault();
}
<asp:Panel runat="server" ID="PanelZipCodes" DefaultButton="btnSave">
<asp:TextBox runat="server" ID="tbxZipCode" />
<asp:AutoCompleteExtender runat="server" ID="AutoCompletePlz" TargetControlID="tbxZipCode" BehaviorID="ZipCodeBehavior"
Enabled="True" MinimumPrefixLength="1" CompletionInterval="50" CompletionSetCount="15"
FirstRowSelected="True" ServiceMethod="GetMatchingPlz" OnClientItemSelected="IAmSelected" />
<asp:TextBox runat="server" ID="tbxCity" />
<asp:Button runat="server" ID="btnSave" OnClick="btnSaveClick" />
<asp:Button runat="server" ID="btnCancel" OnClick="btnCancelClick" />
</asp:Panel>
何か案は?スクリプト スニペットで何かを行う必要があると思いますが、具体的にはどうすればよいでしょうIAmSelected
か。使ってみreturn false;
ました - うまくいきませんでした; それから私は試しsource.preventDefault();
ました-どちらも機能しません-Enterまだパネルに「バブルアップ」し、btnSave
ボタンを「クリック」してモーダルポップアップを閉じます...