2

私は asp .net mvc3 で働いています。テキストボックスとボタンのあるフォームがあります。コントローラーに渡す前に、テキストボックスの値を暗号化する必要があります。そこで、テキストボックスの値を暗号化し、隠しフィールドに保存して、隠しフィールドの値をコントローラーに渡そうとしました。.submit() 内で次のjqueryコードを使用しましたが、コントローラーで隠しフィールドの値を受け取ると、新しい値ではなくデフォルト値が表示されます。

 $('#myform').submit(function () {
       var hash = "hashed value";
    $("#myhiddenfiled").val(hash);
    alert($('#myhiddenfiled').val());
      return false;
  });

Alertbox には新しく割り当てられた値が表示されますが、コントローラーのアクションで受け取った値は古い値で表示されます。submit() に代わるものはありますか?

注::私の場合、ページはEnterボタンを押すことで送信されます

4

3 に答える 3

0

ハッシュの複雑さに応じてchange、ユーザーがデータを入力するフィールドのイベントに関数をバインドし、この値をハッシュ フィールドに設定してから、フォームを送信できます。

送信前にあらゆる種類の興味深いことを実行してから、送信を呼び出すことができるため、私は常に送信を自分で処理するのが好きです。

更新: Dimitri は私が質問を誤解しているというコメントを持っていたので、それらを削除しました。また、Dimitri は、送信時に物事を処理することについて正しいです。

于 2012-09-20T07:20:18.303 に答える
0

#myhiddenfiled 非表示の入力 (表示されている入力ではなく) に、モデルの対応するプロパティと同じ名前が付けられていることを確認してください。

于 2012-09-21T04:53:55.557 に答える
0

変更イベントはそれを行うための良い方法です

元 :

$('#TEXT_INPUT_ID').on('change',function(e){
    var $t = $(this);
    $t.closest('form').find('#hiddenFieldId').val( encrypt($t.val()) );
})
// if any action has to be done on submit except for altering the form input values ... 
.closest('form').on('submit',function(e){
    // flash message
    // ...
})
;
于 2012-09-20T07:49:32.010 に答える