2010-08-31 60 views

回答

5

我不认为你可以禁用一个元素?如果你禁用它,那么为什么它呢?

您只能禁用整个<select>输入。

建议您编写验证以便不接受第一个元素。后

编辑OP的大约能够做到这一点

下面的评论是另一个答案

// Get the countries element (do this after adding your options), then set the 
// attribute disable for option '1' 
$form->getElement("countries")->setAttrib("disable", array(1)); 

此建议here

+0

实际上我需要显示它(只是要求用户选择以下选项),但它不能被选择 – bee 2010-08-31 13:31:35

+0

您至少需要在服务器端进行验证。我敢肯定,你不能在' \t <选项禁用= “禁用”> - 选择OPTION-- \t <选项选择= “选择” 值= “US”>美国 \t <期权价值= “英国”>英国 – bee 2010-08-31 13:37:40

1

幸得jakenoble。
只需重新格式化代码即可使用formSelect-viewhelper而不是表单元素。

<?php 
$countries = array(1 => 'Select Option', 2 => 'us', 3 =>'uk'); 
echo $this->formSelect('country', 2, array('disable' => array(1)), $countries) 

这将导致:

<select name="country" id="country"> 
    <option value="1" label="Select Option" disabled="disabled">Select Option</option> 
    <option value="2" label="us" selected="selected">us</option> 
    <option value="3" label="uk">uk</option> 
</select> 
+0

嗯,这对我有用。我正在使用最新的Zend 1. *版本。看起来我是按照你写的代码进行操作:'$ this-> formSelect( $ nationality-> getName(), $ nationality-> getValue(), array('disable'=> array(1 )), $ nationality-> getMultiOptions() );'。这是对的吧?或者这是ZF2? – Martyn 2015-02-20 03:42:32

3

没有通过Zend_Form的做这件事的方式(至少在我目前已经1.11):

$this->addElement 
(
    "select","selectName", 
    array("multiOptions"=>array("one","two","three"), "disable"=>array(0,1)) 
); 

那一个将禁用第一两个选项。

相关问题