Changing the data in before submit
Asked Answered
D

1

13

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

Dejadeject answered 5/12, 2012 at 10:12 Comment(0)
B
21

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() {

Burletta answered 5/12, 2012 at 10:28 Comment(2)
how would i use this to submit a file instead and change the default name?? I am trying to submit a blob recorded in the browser. (default name is just blob when i submitted it using a FormData its easy to change name with formdata fd.append('name_in_form', new_recording, "browser_recording.mp3"); )Etheleneethelin
I am also getting a javascript error: arr.push is not a function.Etheleneethelin

© 2022 - 2024 — McMap. All rights reserved.