6

シナリオは次のとおりです。

Webページにテキストボックスとボタンがあります。ボタンがクリックされたときに、テキストボックスに入力された値に一致するすべてのアイテムを表示するポップアップウィンドウを(シックボックスを使用して)開きたいです。現在、ThickboxのIFrame実装を使用しています。問題は、表示するURLがボタンの「alt」属性にハードコードされていることです。本当に必要なのは、「alt」属性がテキストボックスの値をポップアップに渡すことです。

これまでのコードは次のとおりです。

<input type="textbox" id="tb" />
<input alt="Search.aspx?KeepThis=true&TB_iframe=true&height=500&width=700" class="thickbox" title="Search" type="button" value="Search" />

理想的には、テキストボックスの値をSearch.aspxのURLに入れたいのですが、その方法がわからないようです。私の現在の代替手段は、jQueryを使用して[検索]ボタンのクリック関数を設定し、ASP.NETセッションでいくつかの値を設定するWebサービスを呼び出すことです。Search.aspxページは、セッション変数を使用して検索を実行します。ただし、セッション変数が設定される前に検索が実行される可能性が常にあるように思われるため、これは少し不安定です。

4

4 に答える 4

10

ボタンの onclick を処理して、 を呼び出す関数を実行しtb_show()、テキスト ボックスの値を渡します。何かのようなもの

... onclick = "doSearch()" ...

function doSearch()
{
    tb_show(caption, 'Search.aspx?KeepThis=true&q=\"' +
            $('input#tb').val() +
            '\"&TB_iframe=true&height=500&width=700');
}
于 2008-11-03T04:52:40.960 に答える
2

マニュアルを読むと、iframeコンテンツセクションの下に、パラメータがTB_iframeパラメータの前にある必要があることが示されています。この後のすべてが取り除かれます。

于 2009-06-23T19:32:33.363 に答える
0

ここにアイデアがあります。あまりきれいではないと思いますが、うまくいくはずです:

$('input#tb').blur(function(){ 
  var url = $('input.thickbox').attr('alt');
  var tbVal = $(this).val();

  // add the textbox value into the query string here
  // url = ..

  $('input.thickbox').attr('alt', url);

});

基本的に、テキストボックスがフォーカスを失うたびにボタンの alt タグを更新します。代わりに、キーストロークを聞いて、毎回更新することもできます.

クエリ文字列の更新に関しては、最善の方法を見つけてもらいましょう。&TB=TB_PLACEHOLDER のようにプレースホルダーを配置することがわかります。次に、文字列の置換を行うことができます。

于 2008-11-03T03:16:25.147 に答える
0

コード ビハインドでは、alt タグをプログラム的に追加することもできます。

button1.Attributes.Add("alt", "Search.aspx?KeepThis=true&TB_iframe=true&height=500&width=700");
于 2009-03-25T11:20:29.037 に答える