2009-02-24 8 views
0

J'ai un champ caché et je change la valeur juste avant de soumettre le formulaire en utilisant Javascript. Mais côté serveur, il est nul ou vide. Request.Form ["hidAction"] est vide.Modification du champ caché dans le problème côté client

<script type="text/javascript" language="javascript"> 

    function DoChange() 
    { 
     document.getElementsByName('hidAction').value = "filter"; 
     alert(document.getElementsByName('hidAction').value); 
     document.forms[0].submit(); 
    } 
</script> 
<body> 
    <form id="form1" runat="server"> 
     <div> 
      <select name="lst" onchange="DoChange();"> 
       <option value="1">1</option> 
       <option value="2">2</option> 
      </select> 
     </div> 
     <input type="hidden" id="hidActionID" name="hidAction" value="tt" /> 
    </form> 
</body> 
</html> 

Répondre

1

document.GetElementsByName renvoie un tableau d'éléments, même s'il n'y en a qu'un seul. Pourquoi ne pas utilisé document.GetElementById et attribuer un ID à l'entrée cachée? Cela devrait fonctionner très bien.

+0

Oui, cela fonctionne. Merci beaucoup, je l'apprécie vraiment. –

0

Je ferais ce que vous faites différemment, mais aller avec ce que vous avez, vous pouvez le faire, en supposant qu'il n'y a qu'un seul élément sur la page avec l'attribut name « de hidAction » sur la page:

function DoChange() 
{ 
    document.getElementsByName('hidAction')[0].value = "filter"; 
    alert(document.getElementsByName('hidAction')[0].value); 
    document.forms[0].submit(); 
} 

vous pouvez aussi le faire de cette façon, en supposant qu'il n'y a qu'une seule forme sur la page:

function DoChange() 
{ 
    document.forms[0]['hidAction'].value = "filter"; 
    alert(document.forms[0]['hidAction'].value); 
    document.forms[0].submit(); 
} 

Lorsque vous postback, Request.Form [ « hidAction »] ne doit pas être vide maintenant.

Questions connexes