【问题标题】:Changing the data in before submit在提交之前更改数据
【发布时间】:2012-11-23 03:11:54
【问题描述】:

我正在使用 here 找到的 ajaxForm 插件

现在我有一个带有用户名密码

表单

我的要求是将 password 字段的值更改为其 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 代码 中打印 password 的值时,它会显示我传递的那个值,而不是我所做的值的 md5。

当我将编码更改为单击 submit 按钮并操作提交时,我的问题是当数据更改时 beforeSubmit 的意义是什么不会在提交

反映

【问题讨论】:

    标签: jquery servlets ajaxform


    【解决方案1】:

    您需要将 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() {

    【讨论】:

    • 我将如何使用它来提交文件并更改默认名称?我正在尝试提交记录在浏览器中的 blob。 (当我使用 FormData 提交它时,默认名称只是 blob,它很容易用 formdata fd.append('name_in_form', new_recording, "browser_recording.mp3"); 更改名称)
    • 我也收到一个 javascript 错误:arr.push 不是函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    相关资源
    最近更新 更多