2015-08-14 13 views
5

Ho una funzione che fa un lavoro personalizzato sul modulo di invio, invia alcuni dati tramite Ajax, accoda i dati restituiti in un nuovo oggetto FormData, ora ho bisogno di inviare il modulo in modo convenzionale (non tramite Ajax) con questo FormData. Capisco che possa essere ottenuto con i campi nascosti, ma cosa succede se non voglio che i dati restituiti siano visibili a qualcuno che conosce un po 'di codice?Invia un modulo con FormData in jQuery - senza Ajax e senza campi nascosti

Quindi è possibile inviare un modulo con un FormData personalizzato in jQuery senza i campi nascosti e Ajax?

+0

stiamo cercando qualcosa di simile a questo: '$ (" # form-id "). Submit()'? –

+0

@CodingEnthusiast No, submit() non invierà l'oggetto FormData personalizzato creato a livello di programmazione. – StudentX

+0

Non sono sicuro al 100% di ciò che stai cercando di fare qui, ma sembra che [archiviazione di sessione] (https://developer.mozilla.org/en/docs/Web/API/Window/sessionStorage) possa funzionare, o almeno essere meno visibile dei campi nascosti – Und3rTow

risposta

1

È possibile aggiungere l'oggetto nel modulo prima di inviarlo e rimuoverlo subito dopo.

$('#yourForm').submit(function() { 
    $(this).append(yourCustomObject) 
    $(this).submit(); 
    $(yourCustomObject).remove(); 
}); 
0

Al momento, come non si può chiamare l'evento presentare da un oggetto formdata è quello di:

  1. intercetta l'originale Proporre evento prevenire il default presentare comportamento
  2. copiare il modulo originale in un nuova istanza di FormData (tutto sarà da copiare)
  3. utilizzare jquery ajax o XHR nativo per chiamare il server azione Si noti che la chiamata ajax eff ect ha lo stesso di una chiamata ajax/xhr, usando la configurazione corretta.
Problemi correlati