2008-11-03 100 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

相关问题