0

我正在尝试使用 Zend_Form 添加一个禁用的复选框,然后使用 JS 启用它。

这就是问题所在,zend 添加了一个具有相同名称和值 0 的隐藏输入字段。这是为了确保即使未选中复选框,也会发送 0 值而不是根本没有值。这很棒。但是,如果您将复选框创建为禁用,zend 不会输出此隐藏字段。它输出的只是复选框,被禁用,被选中或不被选中(没关系,因为它被禁用它根本不会提交任何东西)。

我需要允许客户端启用复选框并更改值。

如果禁用,则不提交任何内容,db 复选框值保持不变。如果启用,客户端应该能够选中/取消选中它。问题是现在没有隐藏字段,如果未选中复选框,则不会提交任何内容。

有任何想法吗?

4

1 回答 1

0

第一:我不喜欢 Zend 为您处理这个问题的方式。正如您自己发现的那样,添加值为 0 的隐藏字段与禁用复选框不同。

解决您的问题:只需自己添加一个隐藏字段,其中包含原始状态。

例如:

<INPUT type="hidden" name="originalStateOfMyCheckbox" value="enabled/disable">

现在您可以通过首先检查 $_POST["originalStateOfMyCheckbox"] 的值来检查复选框的值。

如果启用:您可以使用 isset($_POST["yourcheckboxname"]) 来确定它是否被选中。

如果禁用:您可以再次使用 isset($_POST["yourcheckboxname"]) 来确定您的 javascript 是否启用了它。

于 2012-08-22T07:26:34.943 回答