2012-05-15 77 views
1

好吧,我想獲得一個文本框的值,但是當我做的JavaScript代碼getElementByID()的東西的文本框的ID從原來的值改變如何,我現在得到它? 我甚至試圖把cliendIdMode =「Static」不起作用。JavaScript getelementbyid不工作,因爲ID改變

<script type="text/javascript" language="javascript"> 
    function uploadFileChange() { 
     var tbox = document.getElementById('txtFileName').value; 
     var fu = document.getElementById("FileUpload1").value; 
     if (tbox != fu) { 
      document.getElementById('txtFileName').value = document.getElementById("FileUpload1").value; 
     } 
     return false; 
    } 
</script> 

的一部開拓創新的文本框爲:

<asp:TextBox ID="txtFileName" CssClass="textbox" ClientIDMode="Static" runat="server" 
         Width="300px" ReadOnly="true" /> 

但後來它變成了:

<input name="fuFileInfo$txtFileName" type="text" readonly="readonly" id="fuFileInfo_txtFileName" class="textbox" ClientIDMode="Static" onclick="fuFileInfo_FileUpload1.click();return false;" style="width:300px;" /> 

回答

5

ASP.NET呈現ID的不同服務器端標記。

因此使用ClientID得到渲染ID:

var tbox = document.getElementById('<%=txtFileName.ClientID %>').value; 
var fu = document.getElementById('<%=FileUpload1.ClientID %>').value; 
+0

是在<%= txtFileName.ClientID%>中必需的'='嗎? –

+0

@JoaoSilva總之,是的。更多信息在這裏http://support.microsoft.com/kb/976112 – Curt

0

如果你想使用jQuery來獲取值,你可以做

var tbox = $("[id$='txtFileName']").val();

這是什麼會做的就是抓住元素以id結尾(因此$)您正在查找的ID。

相關問題