我目前正在使用自定义CSS类设置表单元素样式,以不同方式设置文本输入的样式,如:
$submit = new Zend_Form_Element_Submit('login');
$submit->setLabel('Log in')
->setAttrib('class', 'submit');
和
$username = new Zend_Form_Element_Text('username');
$username->setLabel('Username')
->setAttrib('class', 'textinput');
但是,假设我有多个表单,并希望使用textinput
设置所有文本元素的样式,并且默认情况下所有提交的元素都设置为submit
。无论如何要在全球范围内这样做吗?
答案 0 :(得分:2)
不是在每种不同类型的对象上设置类,而是使用CSS来设置元素的样式:
input[type="submit"] {
/* Here goes the stuff that you put in your submit class */
}
input[type="text"] {
/* here goes the stuff you put in your textinput class */
}
textarea {
/* here goes the stuff for a text area */
}
这将执行您希望它执行的操作,并且您不必对Zend Framework默认帮助程序进行子类化。此外,它将输出更少的HTML,因此您的页面将更小,并且CSS可以重新用于页面上的每个输入元素。
答案 1 :(得分:0)
我不是Zend专家,但我想你可以继承每个Zend_Form_Element_ *类并设置你想在它们的构造函数中设置的属性 - 即Zend_Form_Element_Text_Yatta中的子类Zend_Form_Element_Text;然后将属性'class'设置为 'textinput'在它的构造函数中。