2012-01-03 93 views
0

在这一点上,我并不是AJAX和Javascript/JQuery最大的对象。我有一种情况,我知道问题是什么,但不知道如何解决。我有一个工作正常的JQuery自动完成。它是在一个占位符中,当单击linkBut​​ton时,只显示在页面上可见。够简单。我发现我的页面工作得很好,但是如果我将这些占位符的隐藏/显示放在Asp.Net AJAX UpdatePanel中(因此页面不会回发)。够简单...JQuery无法看到通过AJAX调用可见的对象

但现在,当我调用JQuery自动完成时,它不起作用。我知道为什么......这是因为当页面加载时,自动完成所在的文本框不可见,并且链接按钮的AJAX点击仅刷新了该元素,并且没有将整个页面发回。所以,当我去pageSource时,我看到textBox甚至不在那里。所以,当然自动完成功能无法工作,因为它现在无法找到元素的ID。

有什么我可以添加到这个JQuery代码,让它现在看到AJAX面板显示的可见文本框?预先感谢任何人都可以提供的帮助。

<script type="text/javascript"> 
$(document).ready(function() { 
$("#<%=txtCityStateZip.ClientID%>").autocomplete('SearchHandlerGRP_BY.ashx'); 
});  
</script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $("#<%=txtCityStateZip.ClientID%>").show('ErrorHandler.ashx'); 
});  
</script> 
+1

您是否有权访问AJAX调用的成功回调?如果是这样,您只需将自动完成调用添加到回调中(我没有使用过ASP.NET AJAX,不知道它从用户隐藏了多少) – Mathletics 2012-01-03 20:54:15

+1

你在FF,Safari或Chrome中检查了错误控制台吗?'* .ashx'参数是文件名吗?告诉我,如果我错了,但根据jquery文档autocomplete()和show()不支持。 – reporter 2012-01-03 21:02:34

+0

我真的不知道有这样的信息。是否在代码隐藏文件?我如何获得aspx页面脚本信息到那? – 2012-01-03 21:09:24

回答

0

为了查看AJAX调用的结果,拿起JavaScript错误,或者在它已经通过jQuery的操作来查看HTML的状态,我更喜欢使用Firefox和Firebug插件为浏览器。为了做到这一点,只需确保FF已更新,然后转到附件和搜索Firebug。将有一些附加组件的东西,但你会只需要“Firebug”。我目前使用的版本是8.0.3。

安装完成后,可以通过按F12键切换Firebug窗口。我的Firebug窗口停靠在浏览器的底部,并且在浏览器窗口中可以调整大小。

可以从Firebug窗格的主工具/菜单栏获得两个可以告诉您更多关于发生的主要功能。你会对'元素检查'功能感兴趣,这个功能可以让你查看页面上任何元素的html(甚至在被脚本操作之后)。点击Firebug栏左侧的第二个按钮(蓝色框上的蓝色箭头),然后将鼠标悬停在您的页面上。与当前正在悬停的元素相关的html将出现在萤火虫窗口中。点击一个元素来“锁定”到html的那一部分。如果您想再检查一些不同的东西,请再次点击检查工具按钮。

您将能够使用的其他工具已经在注释中引用过了,就是控制台窗口。通过点击检查工具按钮右侧的“控制台”选项卡可以访问它,当它成为活动选项卡后,请确保单击选项箭头并确认控制台已启用。一旦启用,您可以重新加载您的页面,并且ajax请求和响应将在控制台窗口中出现,因为它们会发生。