在form表单中,如果对input加入了disabled="disabled"或者disabled="true"等属性,form表单提交的时候,就不会把值传到后台。
原因是:在html页面的某元素加入了disabled的属性,那么这个元素就只是淡淡的去给用户展示,当表单提交时,这个元素就不会提交给后台处理,所以当元素加入了disabled属性之后,后台就无法得到这个属性的值。
解决办法: 1、再写一个隐藏属性,一个用于显示,一个用于传值。
这个方案的缺点就是太麻烦,殷勤不可懒惰,继续思考解决方案!
2、或者修改为readonly="readonly";
这个方案的缺点就是页面会受到影响,要么把不传值的disabled 也改成readonly
3、点击提交按钮的时候,写一个方法,让disabled=disabled
这个方案的缺点就是一定保证点保存到达后台,否则就暴露了不可编辑的参数。
具体的做法就是在form元素添加一个onsubmit事件<form onsubmit="return checkDisable();">
<script> function checkDisable() { $("select[disabled=disabled]").each(function() { if (parseInt($(this).val()) != -1) { $(this).attr("disabled", false); } }); return true; } </script>