2012-01-18 11 views
11

Sto tentando di utilizzare jQuery per compilare un modulo con alcuni valori predefiniti.Compila un modulo con jQuery

Il modulo è contenuto in un div che ha un ID. In effetti ogni elemento ha un ID, l'ho fatto solo per poter selezionare rapidamente ogni parte del modulo usando la sintassi $("#id").
Qui è la forma:

<div id="panel" style="position: absolute; left: 190px; top: 300px; width: 400px; height: 300px; border: medium groove brown; background: none repeat scroll 0% 0% black; z-index: 100; color: white;"><form id="form_coord_0"> 
X <input type="text" style="height: 25px; font-size: 10px;" size="2" name="X" id="coordX_0"/> 
Y <input type="text" style="height: 25px; font-size: 10px;" size="2" name="Y" id="coordY_0"/> 
<input type="button" id="edit_0" value="M"/> 
<input type="button" id="remove_0" value="-"/> 
<input type="button" id="add_0" value="+"/> 
<input type="button" id="go_0" value="go!"/> 
<br/> 
</div> 

ho bisogno di impostare il campo coordX_0 testo con un certo valore, diciamo: 123.

ho pensato che avrei potuto fare

$("#coordX_0").text.value = 123; 

Ma non sembra funzionare. Qualche suggerimento?

+0

http://api.jquery.com/val, la documentazione è tuo amico. – Jasper

+0

Grazie Jasper, sono piuttosto un novizio con jQuery (beh, anche con js: D) non sapevo nemmeno che esistesse il metodo val(). – nick2k3

+0

@ nick2k3 La prima cosa che ho fatto quando ho imparato jQuery è stata quella di passare attraverso la documentazione dell'API e vedere tutte le funzioni disponibili e le dimostrazioni su come usarle. L'ho fatto in modo da avere almeno un'idea di base di ciò che il framework mi permetterà di fare. Ad esempio la funzione '.val()' può assumere una funzione come argomento se vuoi gestire più input di form in una volta, puoi vedere la mia risposta di seguito per un esempio di come fare questo: http://stackoverflow.com/questions/8914161/fill-in-a-form-with-jquery/8914281 # 8914281 – Jasper

risposta

17

È possibile utilizzare la funzione val() per impostare valori di input

$("#coordX_0").val(123); 

Per inciso, il codice originale potrebbe essere fatto per lavorare impostando il valore proprietà sull'effettivo elemento dom sottostante. Si accede al elemento DOM indicizzando i risultati jQuery:

$("#coordX_0")[0].value = 123; 
+0

Grazie mille! Questo l'ha risolto. Tu o qualcuno capita di sapere dove posso trovare una vasta documentazione su quale metodo posso chiamare su tali oggetti? (qualcosa come JavaDoc ma per javascript e DOM). – nick2k3

+0

Beh, i documenti jQuery sono fantastici - ma i dom doc nativi ?? - Non fuori dalla mia testa. –

+1

@ nick2k3 Prova i documenti MDN: https://developer.mozilla.org/en/DOM/HTMLInputElement. Basta cercare su Google (o qualsiasi altra cosa) per '[la proprietà che voglio sapere su] MDN' dove' [la proprietà che voglio sapere su] 'sarebbe qualcosa come,' valore elemento'. – Jasper

3

Per impostare il valore di un campo di immissione sua

$("#coordX_0").val(123) 
3
$("#coordX_0").val("123"); 

È necessario le citazioni troppo credo. Anche se potrebbe funzionare in entrambi i modi.

2

Utilizzare il metodo val per impostare il testo di qualsiasi campo input.

$("#coordX_0").val(123); 
3

Prova a modificare, utilizzando il metodo val:

$("#coordX_0").val('some string or number'); 
1

Utilizzare questo invece:

$("#coordX_0").val("123"); 
2

utilizzare la funzione Val

$("#coordX_0").val("123"); 
2

Basta scrivere:

In jQuery, text è una funzione per estrarre il testo in dom.

14

Tutte le risposte sono esattamente la stessa così ho pensato di postare qualcosa di diverso:

var inputs_to_values = { 
    'coordX_0' : 'some value', 
    'coordY_0' : 'some other value', 
    'edit_0' : 'N', 
    'remove_0' : '_', 
    'add_0' : '-', 
    'go_0'  : 'stop?' 
}; 
$('#form_coord_0').find('input').val(function (index, value) { 
    return inputs_to_values[this.id]; 
}); 

È possibile passare .val() una funzione, tutto ciò che viene restituito dalla funzione per ogni elemento sarà il nuovo valore:

Una funzione che restituisce il valore da impostare.

questo è l'elemento corrente.

Riceve la posizione di indice dell'elemento nel set e il vecchio valore come argomenti.

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

Il codice di cui sopra prevede che ogni ingresso avrà una proprietà nell'oggetto inputs_to_values modo da poter convertire l'ID dell'ingresso al nuovo valore per quell'ingresso.

Ecco una demo: http://jsfiddle.net/zYfpE/

+0

Stavo cercando qualcosa del genere, ero sicuro che ci fosse un metodo nativo in jQuery, ma questo comunque è abbastanza compatto. Mi piace davvero. – AndreaBogazzi

+0

Questo metodo breve e facile da estendere è proprio quello di cui avevo bisogno e penso che risponda perfettamente alla domanda. Grazie! – Yatko