解决disable 属性无法向后台传值

在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>




猜你喜欢

转载自blog.csdn.net/qq_39191303/article/details/79386539