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

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

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


一、背景


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


二、解决方案


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


定义和用法:

disabled 属性规定应该禁用 input 元素。


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


注释:disabled 属性无法与  一起使用。


禁用了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将服务器控件的值赋值给隐藏域,后台获取隐藏域的值

目录
相关文章
|
6月前
|
开发者
在用户关闭页面时,提示用户有内容未保存-论onbeforeunload事件的用法
在用户关闭页面时,提示用户有内容未保存-论onbeforeunload事件的用法
98 0
|
JavaScript
表单设置 disabled 后无法传值到后台的解决办法
表单设置 disabled 后无法传值到后台的解决办法
185 0
|
人工智能 自然语言处理 前端开发
Network可以显示后台返回的数据,但是打印出来时是undefind
Network可以显示后台返回的数据,但是打印出来时是undefind
105 0
移除MagenTo自动发送邮件中网址的多余部分?___store=id
移除MagenTo自动发送邮件中网址的多余部分?___store=id
【TP5】在模板里边判断后台传的值是否存在
【TP5】在模板里边判断后台传的值是否存在
887 0
【TP5】在模板里边判断后台传的值是否存在
|
JavaScript
el-table分页数据+回显+勾选状态+记录数据(map实战)
el-table分页数据+回显+勾选状态+记录数据(map实战)
904 0