Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing the data in before submit

I am using the ajaxForm plugin found here

Now i have a form with username & password

My requirement is to change the value of password field to its md5 so for that I am using the plugin found here

so for that I am using like this :

$('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');
   }
});

Now when I print the value of password in java servlet code it shows the one that I passed and not the md5 of the value as I did.

When I changed the coding to the click of the submit button and manipulating the submit its done so my question is what is the significance of beforeSubmit when the data changed is not going to reflect in the submit

like image 920
Ankur Verma Avatar asked Dec 05 '12 10:12

Ankur Verma


1 Answers

You need to change your beforeSubmit function to this:

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

Then you can access the hashed-password variable in your servlet.

The reason for this is that the value from the text input has already been processed by AjaxForm and stored in the arr array.

Edit: if you don't want to send the plaintext password, you can use your original method but change beforeSubmit : function(arr, $form, options){ to beforeSerialize : function() {

like image 139
SlashmanX Avatar answered Sep 28 '22 01:09

SlashmanX