web-dev-qa-db-fra.com

Passer une valeur de variable javascript dans la valeur cachée du type d'entrée

Je voudrais assigner la valeur du produit de deux nombres entiers dans un champ caché déjà dans le document html . Je pensais obtenir la valeur d'une variable javascript puis la transmettre à un type d'entrée masqué . I J'ai du mal à expliquer, mais voici comment cela devrait fonctionner:

Exemple de script

 <script type="text/javascript">
 function product(a,b){
      return a*b;
 }
 </script>

ci-dessus calcule le produit et je veux que le produit soit dans le champ caché.

<input type="hidden" value="[return value from product function]">

Comment est-ce possible?

61
KaHeL

Vous pouvez donner un identifiant à votre champ caché:

<input type="hidden" id="myField" value="" />

et puis quand vous voulez assigner sa valeur:

document.getElementById('myField').value = product(2, 3);

Assurez-vous que vous effectuez cette affectation après le chargement complet du DOM, par exemple dans l'événement window.load.

113
Darin Dimitrov

si vous avez déjà cette entrée cachée: 

function product(a, b) {
   return a * b;
}
function setInputValue(input_id, val) {
    document.getElementById(input_id).setAttribute('value', val);
}

sinon, vous pouvez en créer un, l'ajouter au corps puis définir sa valeur: 

function addInput(val) {
    var input = document.createElement('input');
    input.setAttribute('type', 'hidden');
    input.setAttribute('value', val);
    document.body.appendChild(input);
}

Et ensuite vous pouvez utiliser (selon les cas): 

addInput(product(2, 3)); // if you want to create the input
// or
setInputValue('input_id', product(2, 3)); 
9
gion_13

Vous pouvez faire ça comme ça: 

<script type="text/javascript">
     function product(a,b)
     {
     return a*b;
     }
    document.getElementById('myvalue').value = product(a,b);
 </script>

 <input type="hidden" value="THE OUTPUT OF PRODUCT FUNCTION" id="myvalue">
3
Jarrett Widman

Champ caché:

<input type="hidden" name="year" id="year">

Script:

<script type="text/javascript">
     var year = new Date();
     document.getElementById("year").value=(year.getFullYear());
</script>
2
151291

Consultez cette page jQuery pour quelques exemples intéressants montrant comment jouer avec l'attribut value et comment appeler it:

http://api.jquery.com/val/

Sinon, si vous souhaitez utiliser jQuery plutôt que javascript pour transmettre des variables à une entrée quelconque, utilisez les méthodes suivantes pour set la valeur de l'entrée d'un événement click(), submit() et autres:

sur un événement; assigne ou set _ la valeur de l'entrée:

$('#inputid').val($('#idB').text());

où:

<input id = "inputid" type = "hidden" />

<div id = "idB">This text will be passed to the input</div>

En utilisant une telle approche, assurez-vous que l'entrée HTML ne spécifie pas déjà une valeur, ni un attribut désactivé, de toute évidence.

Faites attention aux différences entre .html() et .text() lorsqu’il s’agit de formulaires html.

2
collyg
<script type="text/javascript">
  function product(x,y)
  {
   return x*y;
  }
 document.getElementById('myvalue').value = product(x,y);
 </script>

 <input type="hidden" value="THE OUTPUT OF PRODUCT FUNCTION" id="myvalue">
1
nitin

ajouter un identifiant pour une entrée 

var multi = product(2,3);
document.getElementById('id').value=multi;
1
simoncereska
//prompts for input in javascript
test=Prompt("Enter a value?","some string");

//passes javascript to a hidden field.
document.getElementById('myField').value = test;

//prompts for input in javascript
test2=Prompt("Enter a value?","some string2");

//passes javascript to a hidden field
document.getElementById('myField').value = test2;

//prints output
document.write("hello, "+test+test2;

maintenant c'est déroutant mais cela devrait marcher ...

0
william dunlap