我需要用javascript隐藏文本输入字段。将其type属性更改为hidden在IE中不起作用(安全问题)。
最好的方法是什么?
注意:不能假设jQuery或其他lib。
答案 0 :(得分:1)
我假设您必须根据表单中不断变化的条件动态显示和隐藏文本字段,否则您只需将其设为<input type="hidden"...
即可。
保持您的代码按原样显示和隐藏字段,同时也抓住onsubmit
事件。
在提交处理程序中,通过document.getElementById(...)
(或访问document.forms[i]
)获取文字字段,然后检查其是否隐藏。
如果隐藏了 ,请为<input type="hidden" ...>
字段创建一个新DOM节点,并将该节点添加到表单中,可能是通过myform.appendChild(...)
。您必须为其提供服务器端代码所需的名称。将隐藏文本字段的内容复制到新创建的type = hidden字段中,然后从提交处理程序返回,允许标准提交继续。
您也可以在提交时取消隐藏文本字段,但您也必须将其“移出屏幕”,否则用户会在提交处理期间再次显示它。
答案 1 :(得分:0)
您可以更改它的唯一方法是在将其附加到DOM之前。您可以创建一个新元素,然后用它替换当前元素。
查看replaceChild和createElement,因为您要进行手动DOM脚本编写。我假设你知道该怎么做。
编辑:“隐藏”字段据我所知 已发送。你有没有检查过它们?你也可以position:absolute; left:-9999em;
来抵消它们。
答案 2 :(得分:0)
document.myform.myelement.style.display ='none'
即使在Internet Explorer中也能按预期工作。
答案 3 :(得分:0)
尝试将其包装在div或span中,然后在要隐藏它时将显示样式设置为none,然后在需要时阻止(如果使用div)或内联(如果使用了span)展示它。