下拉列表中是否存在readonly属性?

时间:2012-08-21 09:36:12

标签: php select

我的表单包含一个单选按钮&一个下拉菜单。因此,根据所选的单选按钮值,我需要启用/禁用下拉列表。

我这样做:

<select name="bas_type" id="bas_type" disabled="disabled">
  <option value="Monthly">Monthly</option>
  <option value="Quarterly">Quarterly</option>
  <option value="Annualy">Annualy</option>
</select>

但是如果表单被禁用,我希望在$ _POST中将下拉值设置为空。 所以这不会奏效。请提出任何建议..

3 个答案:

答案 0 :(得分:5)

只需添加一个隐藏字段,其中包含禁用控件时要接收的值以及与下拉列表相同的名称。请务必将放在下拉列表中

<input type="hidden" name="bas_type" value="" />
<select name="bas_type" id="bas_type" disabled="disabled">
  <option value="Monthly">Monthly</option>
  <option value="Quarterly">Quarterly</option>
  <option value="Annualy">Annualy</option>
</select>

当然你不应该真的这么做,因为在PHP中,你应该至少接收辅助函数,如

function param($name, $default = null) {
    return isset($_REQUEST[$name]) ? $_REQUEST[$name] : $default;
}

答案 1 :(得分:2)

将表单中的值设置为“”,这应该可以解决问题:

<option value="">Annualy</option>

或使用这样的空格(不确定哪个会更适合你,没有尝试过):

<option value=" ">Annualy</option>

编辑:value="something"中包含的数据是通过get传递给URL的实际数据。因此,如果将其清空,则数据将不会通过。

答案 2 :(得分:2)

不要依赖从表单中获取的数据。您实际应该做的是检查服务器端是否有无线电按钮处于活动状态,并且取决于忽略或接受来自保管箱的值。