我想在我的 JavaScript 中找到隐藏字段,但它显示未定义的值。
我的脚本是,
<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>
最佳答案
我可以想到两种可能性 - 首先,HiddenField4
是一个服务器控件,因此在这种情况下,您需要使用它的客户端 id。您可以使用诸如
var i= document.getElementById('<%=HiddenField4.ClientID %>').value;
第二个问题可能是该脚本放置在页面顶部,而隐藏元素位于页面下方。因此,当脚本执行时,隐藏字段不存在。解决方案是移动页面底部的脚本 block 或使用某些事件(在正文上加载)在页面加载后执行脚本。例如,
<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
关于javascript 无法使用隐藏字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4143914/