使用jquery提交表单时,将值从文本字段复制到输入类型=隐藏

时间:2012-09-20 07:06:59

标签: jquery asp.net-mvc-3 form-submit

我在asp .net mvc3工作。我有一个带有文本框和按钮的表单。在将其传递给控制器​​之前,我需要加密文本框中的值。所以我尝试加密文本框值,将其存储在隐藏字段中,并将隐藏字段值传递给控制器​​。我在.submit()中使用了以下jquery代码,但是当我收到控制器中隐藏字段的值时,它显示的是默认值而不是新值。

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

警报框显示新分配的值,但在控制器中的操作中接收的值为旧值。是否有提交()的替代方法?

注意::在我的案例页面中按下输入按钮

提交

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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
    // ...
})
;

答案 2 :(得分:0)

确保您的#myhiddenfiled隐藏输入(而不是可见输入)的名称与模型的相应属性相同。