JavaScript - Modulo OnSubmit funziona ma l'azione non è così
-
13-09-2019 - |
Domanda
Sulla mia FORM
, per qualche motivo, posso avere il mio variabile di ingresso modulo tramite onsubmit
ma non utilizzando action
.
Questo funziona:
<form onsubmit="javascript:myFunc(this.city.value);">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Questo non funziona (this.city.value
si trova ad essere null)
<form action="javascript:myFunc(this.city.value);">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Perché è che onsubmit
può ottenere il this.city.value
ma l'evento non può action
?
Soluzione
Il tag form action non fa riferimento a nulla con this
Invece, utilizzare un percorso assoluto
action="javascript:myFnc(document.getElementById('city-field').value)"
Altri suggerimenti
Modifica : Grazie al commento di Christoph, qui di seguito, ho realizzato il mio enorme svista. Ecco la soluzione finale con il suo suggerimento implementato.
<form action="" onsubmit="myFunc(this.city.value); return false;">
<p><input type="text" id="city-field" name="city" onfocus="this.select();" /> <input type="submit" value="Find" /></p>
</form>
Questo dovrebbe fare quello che ti serve. Mi scuso per non aver dato la mia piena attenzione a mie risposte precedenti.
HTML vengono utilizzati per la presentazione dei dati di nuovo a uno script sul server per l'elaborazione dei dati. Quando viene inviato un modulo, i dati nei campi del modulo viene passato al server sotto forma di coppie nome-valore. script lato server, che possono essere scritti in diverse lingue, sono utilizzati per elaborare i dati in entrata e restituire una nuova pagina HTML al browser. La pagina restituita al browser potrebbe essere qualsiasi cosa, da un messaggio "Grazie per esserti registrato" o un elenco di risultati di ricerca generati da una query di database.
dal momento che la forma è per l'invio di dati in un altro file sul server. in azione siamo in grado di specificare solo il percorso in cui abbiamo bisogno di inviare i dati. quindi non c'è non si può ottenere i valori che la forma sta avendo.