我在asp .net mvc3工作。我有一个带有文本框和按钮的表单。在将其传递给控制器之前,我需要加密文本框中的值。所以我尝试加密文本框值,将其存储在隐藏字段中,并将隐藏字段值传递给控制器。我在.submit()中使用了以下jquery代码,但是当我收到控制器中隐藏字段的值时,它显示的是默认值而不是新值。
$('#myform').submit(function () {
var hash = "hashed value";
$("#myhiddenfiled").val(hash);
alert($('#myhiddenfiled').val());
return false;
});
警报框显示新分配的值,但在控制器中的操作中接收的值为旧值。是否有提交()的替代方法?
注意::在我的案例页面中按下输入按钮
提交答案 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隐藏输入(而不是可见输入)的名称与模型的相应属性相同。