Javascript 当我将代码放入单独的文件中时,UserControl中的HiddenField返回null

Javascript 当我将代码放入单独的文件中时,UserControl中的HiddenField返回null,javascript,asp.net,user-controls,Javascript,Asp.net,User Controls,我有一个usercontrol,它包含一个hiddenfield which存储来自代码隐藏的值。以及一些读取该值的Javascript。当我将脚本放在ascx文件中时,一切正常,但当我将脚本移动到.js文件中时,会得到一个空对象(第二行): var hf=document.getElementById(“”); 警报(高频值); var totalCharacters=hf.value 我必须将脚本放在一个单独的文件中的原因是,我想在同一个页面中多次使用userControl,但即使在UC的

我有一个usercontrol,它包含一个hiddenfield

which存储来自代码隐藏的值。以及一些读取该值的Javascript。当我将脚本放在ascx文件中时,一切正常,但当我将脚本移动到.js文件中时,会得到一个空对象(第二行):

var hf=document.getElementById(“”);
警报(高频值);
var totalCharacters=hf.value
我必须将脚本放在一个单独的文件中的原因是,我想在同一个页面中多次使用userControl,但即使在UC的一个实例中,移动也不起作用。 页面中加载了JS文件,但找不到元素


我做错了什么?

如果要将js放在另一个文件上,请将ClientMode设置为static:

比如:


var hf=document.getElementById(“hfTotalCharacters”);
警报(高频值);
var totalCharacters=hf.value

好的,谢谢您的回复,但正如我说过的,我想多次使用usercontrol,在这种情况下不允许使用静态。在函数中调用包装代码并从脚本中调用如何上述js行已经在initialize()函数中,并且是js的第一个命令
    var hf = document.getElementById("<%=hfTotalCharacters.ClientID %>");
    alert(hf.value);
    var totalCharacters = hf.value
<asp:HiddenField runat="server" ID="hfTotalCharacters" ClientIDMode="static"/> 

var hf = document.getElementById("hfTotalCharacters");
alert(hf.value);
var totalCharacters = hf.value