2017-01-24 218 views
1

我在.NET中使用母版頁,並且我發現我無法使用ID來檢索值,因爲.NET添加了它自己的id值。看到這個非常有用的文章! Can't get JQuery to work in Master PageASP.NET hiddenField使用ClientID獲取使用javascript的母版頁的值

所以我經歷了,並添加類的所有相關領域,但是我遇到了一個問題,當它來到我的隱藏字段<asp:HiddenField ID="softwareSelected" value="" runat="server" />

我不能添加一個類進去,經過谷歌搜索我看到人們通過撥打clientID來解決這個問題。

所以,我想這一點:

var myHidden = document.getElementById('<%= softwareSelected.ClientID %>'); 
console.log(myHidden.value); 
alert(myHidden.value); 

使用這樣的回答:ASP.NET set hiddenfield a value in Javascript

但是它不返回任何價值,只是一個空洞的警報和執行console.log。

難道有人指着我正確的方向嗎?這讓我瘋狂!

編輯

我設置了較高的在我的代碼:

<asp:HiddenField ID="softwareSelected" ClientIDMode="static" value="test" runat="server" /> 

通過將的ClientIDMode爲靜態我找回undefined

然後我試着改寫這樣這個值:

var myHidden = document.getElementById('<%= softwareSelected.ClientID %>').value; 
console.log(myHidden.value); 
myHidden.value = "tester123"; 
console.log(myHidden.value); 

但我仍然得到undefined:/

+0

你期待它的價值是什麼? –

+0

目前只是「測試」,因爲該值是硬編碼的 – hlh3406

+0

您何時將其值設置爲「測試」? –

回答

2

我測試了一下,對我的工作。我認爲你的javascript代碼是在一個外部文件中。如果這是你必須知道,

<%= softwareSelected.ClientID %> 

只適用於你.aspx文件。

如果你的JS腳本在.aspx文件,請測試:

var myHidden = document.getElementById('JsContent_ softwareSelected').value; 

如果這不工作,你必須尋找一些別的地方你的問題。

+0

我的.aspx頁面的底部被調用,它包裝在像這樣的內容持有者中:< asp:Content ContentPlaceHolderID =「JsContent」runat =「server」> – hlh3406

+0

但我測試了這個並且工作。 –

+0

你有附加的母版頁嗎? – hlh3406

0

ASPX

<asp:HiddenField ID="softwareSelected" ClientIDMode="static" value="Hello" runat="server" /> 

JS

var myHidden = document.getElementById('softwareSelected'); 
console.log(myHidden.value); 
alert(myHidden.value); 
+0

我不能這樣做,因爲我正在使用。NET母版頁,並且它們爲ID添加了額外的值,這意味着我不能像這樣稱呼它們。我已經通過在課程中添加了其他所有領域,但是我無法在隱藏字段上做到這一點 – hlh3406

相關問題