2011-10-14 21 views
56

Vorrei assegnare il valore del prodotto di due numeri interi in un campo nascosto già nel documento html. Stavo pensando di ottenere il valore di una variabile javascript e poi di passarlo su un tipo di input nascosto. Sto attraversando un periodo difficile da spiegare, ma questo è come dovrebbe funzionare:Passa un valore di variabile javascript nel tipo di input valore nascosto

Esempio di script

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

sopra calcola il prodotto e voglio che il prodotto sia in campo nascosto.

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

Com'è possibile?

risposta

101

Si potrebbe dare il vostro campo nascosto un id:

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

e poi quando si desidera assegnare il suo valore:

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

Assicurarsi che si sta eseguendo questo incarico dopo che il DOM è stato completamente caricato, ad esempio nell'evento .

+0

assomiglia domanda hw per me – Quincy

+0

haha, e ho dimenticato circa il mio hw. Grazie uomo. – KaHeL

+3

la risposta migliore è la risposta più semplice. – Julian

1

aggiungere un po 'id per un ingresso

var multi = product(2,3); 
document.getElementById('id').value=multi; 
8

se si dispone già di tale ingresso nascosto:

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

in caso contrario, è possibile crearne uno, aggiungerlo al corpo e quindi impostare il suo valore :

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

E quindi è possibile utilizzare (a seconda dei casi):

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

Si potrebbe fare che in questo modo:

<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"> 
1
<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"> 
2

Campo nascosto:

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

Script:

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

Guarda jQuery per alcuni esempi interessanti di come per giocare con l'attributo value, e come chiamata esso:

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

Altrimenti - se si desidera utilizzare jQuery, piuttosto che javascript nel passare variabili ad un ingresso di qualsiasi tipo, utilizzare il seguente per impostare il valore dell'ingresso su un evento click(), submit() et al:

su qualche evento; assegnare o impostare il valore dell'ingresso:

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

dove:

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

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

Utilizzando tale approccio, accertarsi che l'ingresso HTML non già specificare un valore, o un attributo disabilitato , ovviamente.

Attenzione alle differenze tra .html() e .text() quando si tratta di moduli html.

0
//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; 

ora questo è fonte di confusione, ma questo dovrebbe funzionare ...

+1

Cerca di essere meno confuso nelle tue risposte in futuro :) – Ortund

Problemi correlati