简体   繁体   中英

How to set any attribute of Select lke disabled='disabled' by using ViewHelper in Zend Framework

I am using Zend Frameworks ViewHelpers. I am trying to pass something to set disabled attribute in SELECT. For example if

$countries = array(1=>'Select Option', 2=>'us', 3=>'uk')

and formSelect('country','us',null,$this->countries)

I need to diable first option ie 'Select Option'

Do you have any idea ?

Thanks in addvance

I don't think you can disable one element? If you disable it then why have it at all?

You can only disable the whole <select> input.

Suggest you write validation to not accept the first element.

Edit after OP's comment about being able to do this

Here is another answer

// 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));

This is suggested here

There IS a way of doing it through Zend_Form (at least on my current ve 1.11):

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

That one will disable first two options.

Credit goes to jakenoble.
Just reformatted the code to use the formSelect-viewhelper instead of a form-element.

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

This will result in:

<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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM