关于select框下设置了disabled导致前台有值,但后台接收不到的情况记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26975307/article/details/81041463

一、背景

在项目(传统JSP)需要改版页面的时候,进入页面前先获取后台传过来的数据,但一部分数据需要设置不可编辑,select框是不支持readonly的,故将select加disabled,此时则引起了一些问题,后台取不到加了disabled属性的值。


二、解决方案

可能由于自己的前端偏弱(其实是以前没有好好学习),来看看W3C对disabled的说明

定义和用法:
disabled 属性规定应该禁用 input 元素。

被禁用的 input 元素既不可用,也不可点击。可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等)。然后,就需要通过 JavaScript 来删除 disabled 值,将 input 元素的值切换为可用。

注释:disabled 属性无法与 <input type="hidden"> 一起使用。

禁用了xx元素。。。所以导致传过去的是一个空值。可以有以下几种解决方案:

1、后台传过来的值只需要一个即可,说白了根据需要切割数组或List集合,下拉也只有一个值

2、在提交的时候将disabled属性remove掉((加载页面的时候设置表单属性disabled=true,提交表单的时候设置表单属性disabled=false) 

$("[disabled]").each(function() {//移除disable,后台方可取值  

         if (parseInt($(this).val()) != -1) {  

             $(this).attr("disabled", false);  

         }  

     }); 

3、在页面增加一个隐藏域,在提交的时候先用js将服务器控件的值赋值给隐藏域,后台获取隐藏域的值



猜你喜欢

转载自blog.csdn.net/qq_26975307/article/details/81041463