2012-12-05 20 views
9

Sto usando il plugin ajaxForm trovato hereModifica dei dati nella prima presentare

Ora ho una forma con nome utente & la password

La mia esigenza è quella di modificare il valore di la password campo al suo md5 quindi per quello sto usando il plugin trovato here

quindi per questo sto usando in questo modo:

$('myForm').ajaxForm({ 

    url : 'pathtosend', 
    type : 'post', 
    beforeSubmit : function(arr, $form, options){ 
     $('#password').val($.md5($('#password').val())); 
    }, 
    success : function(response, statusText, xhr, $form){ 
     alert('blah blah'); 
    } 
}); 

Ora, quando si stampa il valore di la password in java codice del servlet si vede quello che ho passato e non l'md5 del valore, come ho fatto.

Quando ho cambiato il codice per il clic del presentare tasto e manipolare il presentare il suo fare quindi la mia domanda è: qual è il significato di beforeSubmit quando i dati modificati non sta per riflettono nel inviare

risposta

15

È necessario modificare la funzione beforeSubmit a questo:

beforeSubmit : function(arr, $form, options){ 
     arr.push({name:'hashed-password', value:$.md5($('#password').val())}) 
    }, 

Poi si può accedere al hash-p variabile assword nel tuo servlet.

Il motivo per questo è che il valore dall'input di testo è già stato elaborato da AjaxForm e memorizzato nell'array arr.

Edit: se non si desidera inviare il password in chiaro, è possibile utilizzare il metodo originale, ma cambiare beforeSubmit : function(arr, $form, options){-beforeSerialize : function() {

Problemi correlati