javascript无法使用hiddenfield

时间:2010-11-10 11:20:39

标签: javascript asp.net .net

我想在我的javascript中找到隐藏字段,但它显示未定义的值。

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>

5 个答案:

答案 0 :(得分:2)

我可以想到两种可能性 - 首先HiddenField4是服务器控件,所以在这种情况下,你需要使用它的客户端ID。您可以使用

等语法
var i= document.getElementById('<%=HiddenField4.ClientID %>').value;

第二个问题可能是此脚本位于页面顶部,而隐藏元素位于下方。因此,当脚本执行时,隐藏字段不存在。解决方案是移动页面底部的脚本块,或者在加载页面后使用某个事件(在主体上加载)来执行脚本。例如,

<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

答案 1 :(得分:1)

元素HiddenField4是否存在?如果是这样,你检查过它是否有相同的情况?

答案 2 :(得分:1)

我怀疑'HiddenField4'是隐藏字段控件的实际客户端ID。您应该将'HiddenField4'替换为'&lt;%= HiddenField4.ClientID%&gt;'。 ASP.NET将任何控件的id更改为更独特的层次结构形式,可以在.ClientID属性中找到。

答案 3 :(得分:1)

您的脚本是否位于 之后 ID为HiddenField4的元素? 为什么不在domready / onload上运行该片段?

答案 4 :(得分:0)

实际上,服务器控件ID与其client id

不同

所以你可以这样做

<script type="text/javascript">    

var HiddenField4 = '<%=HiddenField4.ClientID %>';

var i = document.getElementById('HiddenField4').value;
 while (i < cn) {
              photoslink[i] = cnSplit[i];
              photos[i] = b[i];
              i++;
          }            
 alert(i);

         /* remaining code here*/

</script>