2012-12-05 3 views
9

Я использую ajaxForm плагин нашел hereИзменение данных в прежде, чем представить

Теперь у меня есть форму с имя пользователя & пароль

Мое требование, чтобы изменить значение пароля Поле к его md5 поэтому для этого я пользуюсь плагином here

так для этого я использую так:

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

Теперь, когда я печатаю значение пароля в Java код сервлета это показывает тот, который я прошел, а не md5 значения, как я сделал.

Когда я изменил кодировку по щелчку представить кнопки и манипулированию представить его сделали мой вопрос, какова значимость beforeSubmit когда данные изменились не собираются отражать в представить

ответ

15

вы должны изменить функцию beforeSubmit к этому:

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

Затем вы можете получить доступ к хэш-р переменная в вашем сервлете.

Причина в том, что значение из текстового ввода уже обработано AjaxForm и сохраняется в массиве arr.

Edit: если вы не хотите, чтобы отправить текстовый пароль, вы можете использовать свой оригинальный метод, но изменить beforeSubmit : function(arr, $form, options){ к beforeSerialize : function() {