已提交已禁用的表单元素

mrN*_*mrN 10 zend-framework zend-form-element

我需要从表中显示一些预先存在的数据,但需要禁用它们以防止用户编辑它们.所以我禁用了他们

$form -> getElement("elementname") -> setAttrib("disable", true);

当我提交表单时,我发现表单元素根本没有提交,只是因为它被禁用了.当我测试删除禁用选项时,我确认了这一点.

怎么了?难道我做错了什么?怎么解决这个?

Dun*_*zzz 21

这是设计使然,禁用的元素不会随表单一起提交.

你正在做的事实上是一个空的练习,无论你对该形式做什么,它可以被最终用户编辑.你根本无法信任表单输入 - 甚至隐藏字段 - 不被篡改.

您最好的选择是向用户显示信息并在提交表单后再次加载; 最糟糕的是将它存放在会话中.


Ric*_*mme 17

这对我来说就像一个魅力.它可以防止元素被编辑并将其传递给帖子.

$this->username->setAttrib('readonly', 'true');
Run Code Online (Sandbox Code Playgroud)

  • 注意:这不适用于选择输入类型 (4认同)