2012-12-02 14 views
5

Dire che ho un modulo HTML come sotto e voglio passare i valori nei campi di testo alle variabili JS.Passa valore variabile dal modulo javascript

<form name="testform" action="" method="?" 
<input type="text" name="testfield1"/> 
<input type="text" name="testfield2"/> 
</form> 

Ho passato solo i valori alle variabili in PHP prima. Quando lo faccio in javascript, ho bisogno di un metodo? E la domanda principale, come è fatta?

risposta

3

Qui ci sono un paio di esempi:

Javascript:

document.getElementById('name_of_input_control_id').value; 

jQuery:

$("#name_of_input_control_id").val(); 

Fondamentalmente si stanno estraendo il valore del controllo di input fuori del DOM utilizzando Javascript/jQuery.

+1

Nota come i controlli a esempio del PO non hanno un ID però ... –

+1

Vero. OP dovrà aggiungere un ID ai suoi controlli di input. – Lowkase

+0

Il mio punto è: non necessariamente. Usare un nome va bene, e poiché gli elementi del form hanno bisogno di un nome comunque (almeno quando comunicano anche tramite il modulo con un server), perché non usarlo? –

0

Prova quanto segue nel "presentare":

var input = $("#testfield1").val(); 
0

le risposte sono tutti corretti, ma si può affrontare i problemi se non mettere il codice in una funzione document.ready ... Se il codeblock è al di sopra la parte html non troverete qualsiasi campo di input con l'id, perché in questo momento si pretende molto esiste ...

document.addEventListener('DOMContentLoaded', function() { 
    var input = document.getElementById('name_of_input_control_id').value; 
}, false); 

jQuery

jQuery(document).ready(function($){ 
    var input = $("#name_of_input_control_id").val(); 
}); 
0

non si ha realmente bisogno di una o di un attributo methodaction se siete semplicemente utilizzando i campi di testo in Javascript

Aggiungi un pulsante submit ed un onsubmit gestore per la forma in questo modo,

<form name="testform" onsubmit="return processForm(this)"> 
    <input type="text" name="testfield1"/> 
    <input type="text" name="testfield2"/> 
    <input type="submit"/> 
</form> 

poi, nel tuo Javascript si potrebbe avere questa funzione processForm

function processForm(form) { 
    var inputs = form.getElementsByTagName("input"); 
    // parse text field values into an object 
    var textValues = {}; 
    for(var x = 0; x < inputs.length; x++) { 
     if(inputs[x].type != "text") { 
      // ignore anything which is NOT a text field 
      continue; 
     } 

     textValues[inputs[x].name] = inputs[x].value; 
    } 

    // textValues['testfield1'] contains value of first input 
    // textValues['testfield2'] contains value of second input 

    return false; // this causes form to NOT 'refresh' the page 
} 
Problemi correlati