我想在我的javascript中找到hiddenfield,但是它显示了未定义的值。
myscript是,
<script type="text/javascript">
var i = document.getElementById('HiddenField4').value;
while (i < cn) {
photoslink[i] = cnSplit[i];
photos[i] = b[i];
i++;
}
alert(i);
var mygallery2 = new fadeSlideShow({
wrapperid: "fadeshow2", //ID of blank DIV on page to house Slideshow
dimensions: [568, 313], //width/height of gallery in pixels. Should reflect dimensions of largest image
imagearray: [
["images/1.jpg", "", "", ""],
["images/2.jpg", "", "", ""],
["images/3.jpg"],
["images/4.jpg", "", "", ""] //<--no trailing comma after very last image element!
],
displaymode: { type: 'auto', pause: 2500, cycles: 0, wraparound: false },
persist: false, //remember last viewed slide and recall within same session?
fadeduration: 500, //transition duration (milliseconds)
descreveal: "always",
togglerid: "fadeshow2toggler"
})
</script>发布于 2010-11-10 19:37:45
我可以想到两种可能性--第一,HiddenField4是一个服务器控件,所以在这种情况下,你需要使用它的客户端id。您可以使用如下语法
var i= document.getElementById('<%=HiddenField4.ClientID %>').value;第二个问题可能是这个脚本被放在页面的顶部,而你的隐藏元素在下面。因此,当脚本执行时,隐藏字段不存在。解决方案是要么移动页面底部的脚本块,要么在页面加载后使用一些事件(load on body)来执行脚本。例如,
<script type="text/javascript">
function executeMyScript() {
var i = document.getElementById('HiddenField4').value;
while (i < cn) {
photoslink[i] = cnSplit[i];
photos[i] = b[i];
i++;
}
var mygallery2 = new fadeSlideShow({
... // rest of the script
}
</script>并在body元素上使用onload事件
... // header and script
<body onload="executeMyScript();">
... // rest of the html发布于 2010-11-10 19:24:03
元素HiddenField4是否存在?如果有,你有没有检查过它有没有同样的情况?
发布于 2010-11-10 19:24:44
我怀疑'HiddenField4‘是隐藏字段控件的实际客户端ID。应将'HiddenField4‘替换为'<%= HiddenField4.ClientID%>’。ASP.NET将任何控件的id更改为更独特的层次结构形式,可以在.ClientID属性中找到该形式。
https://stackoverflow.com/questions/4143914
复制相似问题