2010-11-10 75 views
0

我想在我的javascript中找到hiddenfield,但它顯示未定義的值。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> 
+1

上onload事件我認爲HiddenField4是服務器控件? – Arief 2010-11-10 11:22:41

+0

如果您不給予標記(原始或生成),我們如何檢查代碼是否錯誤或標記? – haylem 2010-11-10 11:24:54

+0

'HiddenField4'在哪裏創建?這是腳本之後? – Romani 2010-11-10 11:29:54

回答

1

元素是否存在HiddenField4?如果是這樣,你有檢查它有相同的情況?

1

我懷疑'HiddenField4'是隱藏字段控件的實際客戶端ID。您應該用'<%= HiddenField4.ClientID%'替換'HiddenField4'。 ASP.NET將任何控件的id更改爲更獨特的層次結構形式,該形式可以在.ClientID屬性中找到。

1

您的腳本是否位於或執行其ID爲HiddenField4的元素? 爲什麼不在domready/onload上運行該代碼片段?

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> 
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> 

並使用主體元素

... // header and script 
<body onload="executeMyScript();"> 
... // rest of the html