在提交之前更改数据

Ank*_*rma 10 jquery servlets ajaxform

我正在使用这里找到的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');
   }
});
Run Code Online (Sandbox Code Playgroud)

现在,当我在java servlet代码中打印密码值时,它会显示我传递的密码值,而不是像我所做的那样显示值的md5.

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

Sla*_*anX 18

您需要将beforeSubmit函数更改为:

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

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

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

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