2010-11-10 4 views
0

Je veux trouver hiddenfield dans mon javascript mais il montre une valeur indéfinie.javascript ne fonctionne pas avec hiddenfield

MyScript est,

<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

Je suppose que HiddenField4 est un contrôle serveur? – Arief

+0

Si vous ne donnez pas le balisage (original ou généré), comment vérifier si le code est incorrect, ou le balisage? – haylem

+0

Où est créé 'HiddenField4'? Est-ce après ce script? – Romani

Répondre

1

élément ne HiddenField4 existe? Si oui, avez-vous vérifié qu'il a le même cas?

1

Je doute que 'HiddenField4' soit l'ID côté client réel du contrôle de champ caché. Vous devez remplacer le 'HiddenField4' par '<% = HiddenField4.ClientID%>'. ASP.NET remplace l'ID de n'importe quel contrôle par un formulaire hiérarchique plus unique, qui peut être trouvé dans la propriété .ClientID.

1

Votre script est-il localisé ou exécuté après l'élément dont l'ID est HiddenField4? Pourquoi n'exécutez-vous pas cet extrait sur domready/onload?

0

id En fait de contrôle du serveur est différent de son client id

afin que vous puissiez le faire comme ça

<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

Je peux penser à deux possibilités - tout d'abord que HiddenField4 étant un contrôle du serveur, donc dans ce cas , vous devez utiliser son identifiant client. Vous pouvez utiliser la syntaxe tels que

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

question second peut être que ce script est placé en haut de la page alors que votre élément caché est ci-dessous. Donc, quand le script est exécuté, le champ caché n'existe pas. La solution consiste à déplacer le bloc de script en bas de la page ou à utiliser un événement (charger sur le corps) pour exécuter le script après le chargement de la page. Par exemple,

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

Et utiliser l'événement onload sur l'élément du corps

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