前端页面涉及disabled被写死数据的传输问题
背景
常常我们因为各种情况,需要将页面某一模块内容设为不可编辑状态,也就是“写死”,然后被“写死”的模块的值,又是需要随着网页的表单提交到服务器处理,此时便会遇到被“写死”模块的值无法传送。
在此之前,博主在网上搜索查阅了很多帖子,尚未有人提到解决办法。可能因为这种小问题,大佬们都心知肚明,也觉得没总结的必要,但是对刚入行不久的小白来说,很多细枝末节方面的问题,往往比主要功能的编码更令人头疼。
故在项目实践中,我总结一种处理方法以供大家参考。
假定需求
当用户在字段“考试模式”的下拉框中,选择了“随机”时,字段“考试内容”的下拉框也自动默认为“随机”并且状态为不可编辑。
这个触发事件的js就不再赘述了,相信各位大佬不在话下,重要的是对被“写死”的“考试内容”的值怎么能让它进行传输。
设property=“ExamContent” 的下拉框(也可为帮助),将其设为不可编辑状态,即:document.getElementById("ExamContent").disabled="true"
解决方法
首先,在页面开头便将"ExamContent" 设为隐藏参数:<html:hidden property="ExamContent"/> ;
然后,在“考试内容”下拉框的声明部分,将属性名称更改为其他,即将设的property="ExamContent"改为property=“ExamContent1”,其中ExamContent1可为任意值;
随后,页面上js中关于原本property="ExamContent"的状态与值的操作,均改为对property="ExamContent1"的状态与值的操作;
最后,将property="ExamContent1"的值赋给property=“ExamContent”,即document.getElementById("ExamContent").value=document.getElementById("ExamContent1").value
接下来在页面表单的正常提交时,被“写死”的数据也能正常被传输到服务器处理。
形象理解
被“写死”=被关在家,不“写死”=在教室,ExamConten=小明,ExamConet1=小王,正常提交数据=交作业,赋值=做完的作业,“考试内容”正常传输=老师收到一份作业,整个过程即为:小王完成家庭作业,在交作业之前,将作业给小明抄完,之后无论小王被关在家还是在教室,小明均能够正常交作业,老师均能收到一份作业。
上述方案,亲测可用,有疑问可帮助解决!新人发帖总结经验,不周到之处,还请体谅,不吝指教!