12

ここにある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サーブレットコードでパスワードの値を出力すると、渡した値が表示され、値のmd5は表示されません。

コーディングを送信ボタンのクリックに変更して送信を操作すると、送信が完了したので、変更されたデータが送信に反映されない場合のbeforeSubmitの重要性は何ですか?

4

1 に答える 1

20

beforeSubmit関数を次のように変更する必要があります。

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

次に、サーブレットのハッシュパスワード変数にアクセスできます。

これは、テキスト入力の値がすでにAjaxFormによって処理され、arr配列に格納されているためです。

編集:プレーンテキストのパスワードを送信したくない場合は、元の方法を使用できますが、次のように変更beforeSubmit : function(arr, $form, options){しますbeforeSerialize : function() {

于 2012-12-05T10:28:20.073 に答える