Sto cercando il modo più pulito per creare un modulo HTML che non ha un pulsante di invio. Questo è di per sé abbastanza semplice, ma devo anche impedire che il modulo si ricarichi da solo quando vengono effettuate operazioni simili alla submission (ad esempio, premendo Immettere in un campo di testo).modulo senza azione e dove immettere non ricarica pagina
risposta
Aggiungi un gestore onsubmit al modulo (tramite js semplice o jquery $(). Submit (fn)) e restituisce falso a meno che non siano soddisfatte le condizioni specifiche.
A meno che non si desideri inviare il modulo, mai - nel qual caso, perché non lasciare semplicemente l'attributo 'azione' sull'elemento del modulo?
Un modulo senza un attributo 'action' non è una forma, secondo gli standard - e in effetti farà in modo che una pagina si ricarichi in alcuni browser. Ho trovato che action =" javascript: void (0); "' funziona bene . – Dutchie432
La risposta Dutchies funziona perfettamente. Firefox stava semplicemente aggiornando la pagina. – Doomsknight
@ Dutchie432 dovrebbe rendere questo in una risposta invece di un commento. Poi si dirigerebbe verso l'alto dove appartiene. In alternativa, KPrime potrebbe aggiustare la sua risposta, poiché omettere l'azione non ha funzionato per me ... – sage
Basta aggiungere questo evento al campo di testo. Si eviterà una sottomissione su premendo Invio, e tu sei libero di aggiungere un pulsante di invio o chiamare il form.submit() come richiesto:
onKeyPress="if (event.which == 13) return false;"
Ad esempio:
<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>
Grazie per quello. Temo che la chiarezza della tua risposta mi abbia chiarito la correttezza di una risposta precedente in modo da non ottenere la risposta accettata, ma ottieni la mia gratitudine e una spinta verso l'alto! –
Grazie. Felice di aiutare. Comunque non sono mai stato uno alla ribalta. ;) – GenericMeatUnit
Vorrete per includere action="javascript:void(0);"
nel modulo per impedire il ricaricamento della pagina e mantenere lo standard HTML.
Appena trascorso 2 giorni cercando di sopprimere l'azione predefinita del pulsante di invio quando viene premuto Invio, perché anche se l'azione ha avuto luogo, la pagina ha finito per ricaricare (Firefox). Aggiungendo il vuoto javascript come azione sul modulo risolto. Grazie per quello. –
grazie per questa risposta aggiuntiva. questo funziona ancora - ma è ancora la soluzione "state of the art" nel 2016? –
@low_rents Continuo a usarlo sempre e non ho trovato personalmente una soluzione migliore. – Dutchie432
un'idea:
<form method="POST" action="javascript:void(0);" onSubmit="CheckPassword()">
<input id="pwset" type="text" size="20" name='pwuser'><br><br>
<button type="button" onclick="CheckPassword()">Next</button>
</form>
e
<script type="text/javascript">
$("#pwset").focus();
function CheckPassword()
{
inputtxt = $("#pwset").val();
//and now your code
$("#div1").load("next.php #div2");
return false;
}
</script>
bidirezionale per risolvere: valore di azione
- maschera è "javascript: void (0);".
- aggiungi listener di eventi keypress per il modulo per impedire l'invio.
La prima risposta è la soluzione migliore: (. Sia tramite js pianura o jquery $() presenta (fn))
Aggiungere un gestore onsubmit alla forma, e restituire false a meno che il condizioni specifiche sono soddisfatte.
più specifiche con jQuery:
$('#your-form-id').submit(function(){return false;});
A meno che non si desidera che il modulo per presentare, sempre - in questo caso, perché non solo lasciare fuori l' 'azione' attributo sul elemento di forma?
Scrivere le estensioni di Chrome è un esempio di dove si potrebbe avere un modulo per l'input dell'utente, ma non si desidera che venga inviato. Se si utilizza action = "javascript: void (0);", il codice funzionerà probabilmente ma si finirà con this problem in cui si riceve un errore sull'esecuzione di Javascript in linea.
Se si omette completamente l'azione, il modulo verrà ricaricato, il che è anche indesiderato in alcuni casi quando si scrive un'estensione di Chrome. O se avessi una pagina web con una sorta di calcolatrice incorporata, in cui l'utente fornirebbe qualche input e fare clic su "Calcola" o qualcosa del genere.
Quando si preme entrare in forma il comportamento naturale della forma viene ad essere submited, per fermare questo comportamento, che non è naturale, è necessario evitare che si submiting (comportamento di default), con jQuery:
$("#yourFormId").on("submit",function(event){event.preventDefault()})
- 1. gotFocus e immettere metodi nel campo Modulo non viene chiamato
- 2. Pagina Ricarica comportamenti in Safari
- 3. focus() per immettere senza scorrere
- 4. Invia modulo senza ricaricare la pagina
- 5. VBA per immettere i dati online e inviare il modulo
- 6. Variazione URL browser barra degli indirizzi senza ricarica pagina esistente
- 7. Ricarica la pagina premendo il pulsante Indietro
- 8. AJAX Posting ValidateAntiForgeryToken senza modulo per MVC Metodo di azione
- 9. android - controllo IME mostra azione di ricerca invece di immettere
- 10. Modulo di invio senza aggiornamento della pagina
- 11. Change hash senza ricarica in jQuery
- 12. Dinamica: azione modulo
- 13. Ricarica la pagina nell'app della metropolitana C#
- 14. ricarica senza coclea o un'animazione
- 15. Ricarica il modulo dando NameError: il nome 'ricarica' non è definito
- 16. Ricarica un modulo in Python 3.4
- 17. Azione modulo HTML e problemi di invio immediato
- 18. MVC jQuery invia modulo (senza aggiornamento pagina) dalla funzione JavaScript
- 19. jQuery Aggiorna/Ricarica pagina Dopo il successo
- 20. Azione link alla stessa pagina
- 21. Ricarica un IFRAME senza aggiungere alla cronologia
- 22. jQuery/Javascript - ricarica la pagina corrente con una querystring aggiunta?
- 23. Ricarica postgreSQL senza interrompere la connessione corrente?
- 24. Django Form ricarica dati
- 25. Inserisci riga senza tabella di ricarica
- 26. Aggiorna la pagina nel browser senza inviare nuovamente il modulo
- 27. Come si ottiene un nuovo token di accesso dopo la scadenza senza una ricarica della pagina?
- 28. Magento accedere e registrarsi modulo una pagina
- 29. Yii2 ID azione CAPTCHA non valido nel modulo
- 30. link_to update (senza modulo)
Vuoi non inviarlo mai? – UpTheCreek
Se hai solo un con un solo che è un campo di testo che non deve inviare quando premi Invio, dovrebbe? –
Voglio che si presenti su qualche altra condizione (di fatto colpendo un determinato pulsante). Il problema è che non sono riuscito a ottenere il comportamento di "entrare nel campo di testo" di postare/raggiungere lo stesso URL per non accadere. Quindi il mio modulo creato con cura, dove devi fare X, Y e Z per farlo inviare, può essere inviato erroneamente dall'utente premendo enter. –