如何使用QuickForm添加禁用的选择选项?
我有使用QuickForm的代码,它使用以下内容创建一个选择小部件:
$form->addElement( 'select', 'state_id', 'State:', statesArray() );
statesArray()
查询数据库以获取可用状态,并返回一个关联数组,其中ID与状态名称相关联。我在整个解决方案中使用了类似的技术。
我想要做的是在这个数组前加上两个被禁用的选项,这样默认情况下,选择菜单会显示“请选择一个状态”,后面跟一个短划线,这两个选项都被禁用。如果我没有使用QuickForm,则select将具有以下两个选项:
<option value="" disabled="disabled">Select a State</option>
<option value="" disabled="disabled">-</option>
两个选项都被禁用,如果用户在第一个值上保留选项,则选择窗口小部件将提交一个空值,该值由表单检查代码无效。
有没有办法用QuickForm做到这一点?
谢谢,
查
没有找到相关结果
已邀请:
2 个回复
冲汉
在将数组返回到调用代码之前,我做了一个版本,其中
被添加到
调用之前,但这并没有禁用该选项。添加规则以确认选择是数字是解决方法(
)。但我仍然不喜欢它是可选择的。这是我找到的解决方案。
我希望这有助于其他人。 :)
信藉乒
,但浏览器通常不会默认为此值,而是默认为
组中的第一个
。 为什么不让你的
的值为“None”(类似于你给定的老式解决方案)并保持启用状态,然后让窗口小部件将表单保留为无效,如果它们留空?这是否超出了QuickForm的范围? 我认为大多数用户都没有注意到是否启用了某些功能,并且禁用的唯一好处是使其无法选择。 您的目标是否适合验证输入?如果是这样,为什么不在表单和QuickForm之间添加一些javascript来检查用户是否在提交之前选择了disabled(或value =“Null”)元素? 显然我需要阅读QuickForm文档才能全面了解,但根据我的示例,您可以将
添加到state_array,然后使用您计划使用的任何形式验证器,不接受“无”作为有效的输入。