禁用表单元素的POST值

bik*_*y77 7 php disabled-input

我有一个表单,我需要禁用一系列复选框和一些字段,以便用户无法更改/更改其值.当我提交表单时,禁用元素的POST值缺失/ null.如何在没有这个问题的情况下管理我正在尝试做的事情?

现在我通过禁用容器div来禁用这些字段,如下所示:

#unselectable {
    -moz-user-select: -moz-none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -o-user-select: none;
    -webkit-user-select: none;
    cursor:not-allowed; 

}
Run Code Online (Sandbox Code Playgroud)

Mad*_*iha 25

好吧,我能想到3种解决方案:

  • 让他们readonly通过添加readonly属性的元素.
  • 在CSS/JavaScript中禁用它们.将其标记为已禁用,并且不允许使用JavaScript进行编辑,
  • 保持禁用状态,并在提交时删除禁用状态.

拿你的选择:)

  • 我编写了一个循环遍历所有表单元素的小脚本,并在提交表单时启用它们.谢谢! (2认同)

oez*_*ezi 6

你可以使用readonly而不是disabled几乎相同的用户(不能编辑),但是 - readonly元素的值被提交而disabled没有.

请注意,readonly和disabled之间存在一些其他差异,这可能会导致其他问题:

已禁用属性

  • 禁用的表单元素的值不会传递给处理器方法.W3C将其称为成功元素.(这类似于未选中的表单复选框.)
  • 某些浏览器可能会覆盖或为已禁用的表单元素提供默认样式.(灰色或浮雕文本)Internet Explorer 5.5对此特别讨厌.
  • 禁用的表单元素不会获得焦点.
  • 在选项卡式导航中跳过已禁用的表单元素.

只读属性

  • 并非所有表单元素都具有只读属性.最值得注意的是,和元素没有readonly属性(尽管你们两个都有禁用属性)
  • 浏览器不提供默认的重写视觉反馈,表单元素是只读的.(这可能是一个问题......见下文.)
  • 具有readonly属性集的表单元素将传递给表单处理器.
  • 只读表单元素可以获得焦点
  • 标签式导航中包含只读表单元素.