html 下拉框disable传不了数据,javascript将下拉框disable之后的提交传值问题

当JavaScript禁用select下拉框后,表单提交不会包含其值。文中介绍了两种应对策略:一是给select外层添加标签并在鼠标离开时启用;二是创建隐藏input输入框来保存值。作者分享了实现隐藏input的代码片段,并提醒select无readonly属性。文章还提及在使用createElement时遇到的问题及其解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

javascript将下拉框disable之后,form提交时下拉框的值将不再传回后台。

将项目中遇到的实际情况是:整个form都是在后台动态拼接后传回页面进行显示的。所以在网上查找资料时提到的两种常规实现方式都显得不太合适:

第一、在select标签外面包一层标签(这种做法实现的效果感觉有点点不和谐):

onmouseout = "firstChild.disabled=false" >

111

222

333

444

第二、添加一个hidden的input框,下拉框还是disable掉,把需要提交到后台的值放到添加的隐藏域中。

第二种方式如果直接弄的话不太好弄,不过稍微变换一下思路,这种方式是可以很好的满足需求的:通过js实现隐藏域的添加。代码摘录如下:

document.getElementsByName("tranArea")[0].disabled="disabled";

var inp = document.crea teElement("

TYPE='hidden'

NAME='tranArea'

VALUE="+document.getElementsByName("tranArea")[0].value+"

>");

document.frm.a(inp);

另外,一兄弟在告诉我玩crea teElement的时候遇到了一点小小的问题也一并记录:

var inp = document.crea teElement("INPUT");

// inp.setAttribute("name","tranArea",0); // name的设置不成功

inp.setAttribute("type","hidden",0);

inp.setAttribute("value","xxx",0);

document.docForm.a(inp);

alert(document.docForm.outerHTML);

最后,友情提示一下:select标签没有readonly属性,所以写了也白写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值