web-dev-qa-db-fra.com

Comment définir la valeur d'un champ caché en entrée via JavaScript?

J'essaie d'appeler la fonction resetyear et de l'appeler aussi mais le flux s'arrête en alerte ("over"), il ne transfère pas son contrôle à resetmaster. Suggérez-moi quelque chose.

    String flag = "";
    flag = (String) session.getAttribute("flag");
    System.out.println("flag = " + flag);
    if (flag == null) {
        flag = "";
    }
    if (flag.equals("yes")) {
%>   
<script>

   alert(1);
  // resetyear();
    dontreset();
    //document.getElementById("checkyear").value = "1";
    //alert(document.getElementById("checkyear").value);

</script>
<%} else if(flag.equals("no"))
    {%>
<script>
    alert(2);
    //document.getElementById("checkyear").value = "2";
    //alert(document.getElementById("checkyear").value);
    resetyear();
</script>
<%}else{}%>


function resetyear(){

if(confirm("DO YOU WANT TO RESET THE YEAR?"))
{
    alert("hello");
    //document.forms['indexform'].action = "resetmaster";
    //alert(document.forms['indexform'].action);
    //document.forms['indexform'].submit();  
    alert("over");
    form.action = "resetmaster";
    form.submit();
    alert(1);
}
33
Divyang

Pour moi ça marche:

document.getElementById("checkyear").value = "1";
alert(document.getElementById("checkyear").value);

http://jsfiddle.net/zKNqg/

Peut-être que votre JS n'est pas exécuté et que vous devez ajouter une fonction () {} autour de tout cela.

57
almo

Vous devez exécuter votre script après que l'élément existe. Déplacez le <input type="hidden" name="checkyear" id="checkyear" value=""> au début.

6
Matt H

Cela semble fonctionner correctement dans Google Chrome. Quel navigateur utilisez-vous? Voici la preuve http://jsfiddle.net/CN8XL/

Quoi qu'il en soit, vous pouvez également accéder au paramètre de valeur d'entrée via le document.FormName.checkyear.value. Vous devez insérer l'entrée dans une balise <form> comme avec l'attribut approprié name, comme illustré ci-dessous:

<form name="FormName">
    <input type="hidden" name="checkyear" id="checkyear" value="">
</form>

Avez-vous envisagé d'utiliser la bibliothèque jQuery ? Voici les docs pour la fonction .val() .

4
andreacanton

La première chose que je vais essayer - déterminer si votre code avec des alertes est réellement rendu. Je vois du code "if" de serveur dans ce que vous avez posté, donc peut-être que la condition pour rendre le javascript n'est pas satisfaite. Donc, sur la page sur laquelle vous travaillez, cliquez avec le bouton droit de la souris sur -> Voir la source. Essayez de trouver le code js ici. Veuillez nous indiquer si vous avez trouvé le code sur la page.

1
Alex Buyny

Votre code pour définir la valeur pour une entrée masquée est correct. Voici le exemple . Vous avez peut-être des conditions dans vos instructions if qui ne permettent pas à vos scripts de s'exécuter.

1
Alex