我没有看到提交按钮上的图标我在文件.php
中执行此代码:
$submit = new Zend_Form_Element_Submit('submit');
$submit ->setLabel(Zend_Registry::get('Zend_Translate')->translate('Send'))
->setDecorators(array(
array( array( 'inner' => 'HtmlTag' ), array( 'tag' => 'i', 'class' => 'icon-arrow-right' ) ),
array( array( 'wrapper' => 'HtmlTag' ), array( 'tag' => 'span', 'class' => 'add-on', 'id' => 'login') ),
array('ViewHelper', array('placement' => 'prepend')),
'Errors',
array('FormErrors', array('placement'=>'default')) ,
));
和文件.phtml
<?php echo $this->element->submit->renderViewHelper(); ?>
并且它不起作用我看到按钮没有图标没有css图标-arrow-right
提前致谢
答案 0 :(得分:0)
提交元素从setLabel
获取值(文本按钮),setValue
中的值将被忽略。
另外,您不能将HTML(<span class="add-on" id="login"><i class="icon-arrow-right" ></i></span>
)作为HTML属性的值。
使用CSS设置提交按钮的样式。你可以这样做: http://jsfiddle.net/nsU6e/1/
如果您真的不想使用简单的CSS并想要更改标记,那么您需要使用Decorators。像这样的东西:
$submit->setLabel(Zend_Registry::get('Zend_Translate')->translate('Send'))
->setDecorators(array(
array( array( 'inner' => 'HtmlTag' ), array( 'tag' => 'i', 'class' => 'icon-arrow-right' ) ),
array( array( 'wrapper' => 'HtmlTag' ), array( 'tag' => 'span', 'class' => 'add-on', 'id' => 'login') ),
array('ViewHelper', array('placement' => 'prepend')),
'Errors',
array('FormErrors', array('placement'=>'default')) ,
));
另一个更新:
你可以尝试:
$submit->setLabel(Zend_Registry::get('Zend_Translate')->translate('Send'))
->setAttrib('class','add-on')
->setAttrib('id','login')
->setDecorators(array(
'ViewHelper',
array( array( 'inner' => 'HtmlTag' ), array( 'tag' => 'i', 'class' => 'icon-arrow-right', 'placement' => 'append' ) ),
'Errors',
array('FormErrors', array('placement'=>'default')) ,
));
甚至更简单(但需要更改CSS):
$submit = new Zend_Form_Element_Submit('submit');
$submit ->setLabel(Zend_Registry::get('Zend_Translate')->translate('Send'))
->setAttrib('class','btn_submit');
和CSS这样:
.btn_submit{
-webkit-appearance: none;
-moz-appearance: none;
-ms-appearance: none;
border: 2px solid lightskyblue;
border-radius: 4px;
background: #0ca6d9 url('/img/myarrow.png') 95% 50% no-repeat;
padding: 5px 20px;
color: white;
}