2012-12-05 97 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 servlet代碼打印密碼值它顯示了一個,我過去了,沒有價值的MD5我沒有。

當我改變了編碼爲的點擊提交按鈕和操縱提交其完成的,所以我的問題是什麼是beforeSubmit的意義,當數據變化不會反映提交

回答

15

你需要改變你的beforeSubmit功能如下:

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

然後你就可以訪問散列-p您的servlet中的密碼變量。

原因是來自文本輸入的值已經由AjaxForm處理並存儲在arr數組中。

編輯:如果你不希望發送明文密碼,你可以用你原來的方法,但改變beforeSubmit : function(arr, $form, options){beforeSerialize : function() {