2008-11-03 73 views
6

這裏的情景:有沒有辦法將Thickbox與動態內容一起使用?

我有一個文本框,並在網頁上的按鈕。當點擊該按鈕時,我希望有一個彈出式窗口中打開(使用ThickBox的),將顯示匹配在文本框中輸入值的所有項目。我目前正在使用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來設置。搜索按鈕的點擊函數來調用Web服務將在ASP.NET會話設置一些值,然後將Search.aspx頁面將使用會話變量做搜索。然而,這是一個有點片狀因爲它似乎就像總會有可能性那樣在會話變量設置之前,arch執行。

回答

9

只是處理您的按鈕的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'); 
} 
+0

這正是我所期待的。謝謝!如果我能投你了10倍,我會的。:-) – 2008-11-03 10:47:51

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標籤。相反,你也可以聽按鍵並在每一個之後更新。

至於updateing查詢字符串,我會讓你找出最好的方式。我可以看到把一個佔位符,在那裏,像:& TB = TB_PLACEHOLDER。然後你可以做一個字符串替換。

+0

試過了。 alt確實生效,但看起來Thickbox插件並不尊重它。它仍然使用原始網址。 :-( – 2008-11-03 03:28:57

0

code-behind,你也可以只添加ALT標記progammatically,

button1.Attributes.Add("alt", "Search.aspx?KeepThis=true&TB_iframe=true&height=500&width=700"); 
2

如果您閱讀手冊,下iframe內容的部分,它會告訴你,你的參數需要去在TB_iframe參數之前。這之後的一切都被剝離了。

+0

謝謝!在手冊中錯過了! – jerrygarciuh 2011-07-01 00:32:34

相關問題