2014-05-05 51 views
1

這是另一個讓我把我的頭髮留下來的東西。asp.net GetElementByid()。value元素/財產不可用

我最近的asp.net頁面是我爲了一個內部數據庫工具而拼湊在一起的東西。它使用標準VS 2010設計模板,這意味着它使用site.master頁面。我提到這一點是因爲它可能與我的問題有關。我使用asp:textbox控件而不是input type="text"。當一個文本框模糊不清時,我需要在代碼隱藏中運行一個子代碼,以便根據文本框中輸入的信息進行數據庫查找。

我看到的一切都是我需要添加一個asp:hiddenfield來觸發代碼隱藏事件來執行查找。所以我在JavaScript腳本中使用document.GetElementById方法來設置隱藏字段中的值。它應該做的是:document.GetElementById('HiddenInfo').value = "yada-yada"

我的問題是VS開發環境無法識別GetElelmentById命令的.value屬性。例如,就像它的習慣一樣,當你輸入時,VS會給出代碼提示。當我到達要插入.value參數的位置時,它不會顯示在建議列表中。見圖示:

enter image description here

正如你可以看到,鍵入V不會彈出.value的參數。

我試着通過ClientID和通過使用jquery,並沒有任何工作。瘋狂的事情是我之前用我開發的另一個網頁完成了這個,但唯一的區別是沒有一個site.master頁面。

我花了幾個小時試圖在網上找到答案,沒有什麼與我的問題完全一樣。

任何想法?

謝謝!

+2

它不會總是出現在intellesense中,但這並不意味着它不起作用。 – attila

+0

智能感知通常不適用於Javascript。 –

+0

即使完全鍵入它也不行。 –

回答

0

幾小時後,我終於找到了答案。在JavaScript函數改變所述HiddenInfo字段的值,一行補充說明的是(I猜)強制回發,然後觸發該_ValueChanged事件在後面的代碼:

<script language="javascript" type="text/javascript"> 
function CheckCC() { 
    document.getElementById('HiddenInfo').value="YES"; 
    <%= ClientScript.GetPostBackEventReference(HiddenInfo, "") %>; 
} 

我挖出答案是here

看起來像一個很模糊的解決方案。

奇怪的是,在我以前的asp.net設計中,這不是必需的。這真是令我困惑,我仍然不明白。但至少我現在可以繼續前進。

謝謝大家的建議。

0

那麼這是一個asp.net的元素,所以你必須得到它的clientid我相信。這裏是在jQuery中:

$('#<%=HiddenInfo.ClientID %>').val(); 
+0

我曾試過,除了我沒有把哈希標籤在開始。 –

+0

(哈希標記將jQuery特定。) – wazz