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

确保您的#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 回答
0

根据您的哈希复杂性,您可以将函数绑定到change用户输入数据的字段的事件,在哈希字段上设置此值,然后提交表单。

我一直喜欢自己处理提交,因为我可以在提交之前做各种有趣的事情,然后仍然调用提交。

更新:Dimitri 评论说我误解了这个问题,所以我删除了这些。此外,Dimitri 在提交时处理事情是正确的。

于 2012-09-20T07:20:18.303 回答