javascript getelementbyid无效,因为id已更改

时间:2012-05-15 16:00:01

标签: javascript asp.net

好吧我想得到一个文本框的值,但是当我做javascript代码getElementByID()时,文本框的id从原始值改变了如何才能得到它? 我甚至试过把cliendIdMode =“静态”放不起作用。

<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;" />

2 个答案:

答案 0 :(得分:5)

ASP.NET将ID与服务器端标记的呈现方式不同。

因此,使用ClientID获取呈现的ID:

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

答案 1 :(得分:0)

如果你想使用jquery来获取你可以做的值

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

这样做的目的是获取id结尾的元素(因此$)你正在寻找的id。