2012-01-03 96 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請求和響應將在控制檯窗口中出現,因爲它們會發生。