在提交之前更改数据

我正在使用这里找到的ajaxForm插件

现在我有一个用户名密码表格

我的要求是将密码字段的值更改为其md5,以便我使用此处的插件

所以我这样使用:

$('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代码中打印password的值时,它会显示我传递的那个,而不是像我那样显示值的md5。

当我将编码更改为单击提交按钮并操纵提交完成时,我的问题是,当提交的数据未在提交中 反映时, beforeSubmit的意义是什么

您需要将beforeSubmit函数更改为:

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

然后,您可以访问servlet中的hashed-password变量。

原因是文本输入的值已经由AjaxForm处理并存储在arr数组中。

编辑:如果您不想发送明文密码,可以使用原始方法,但更改beforeSubmit : function(arr, $form, options){ to beforeSerialize : function() {