在提交之前更改数据

时间:2012-12-05 10:12:51

标签: jquery servlets ajaxform

我正在使用找到here

的ajaxForm插件

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

我的要求是将密码字段的值更改为 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 的重要性是什么不会在提交

反映

1 个答案:

答案 0 :(得分:18)

您需要将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){更改为beforeSerialize : function() {