Yii:如何在标签内制作带有html标签的按钮

时间:2013-01-28 20:30:11

标签: php twitter-bootstrap yii

我正在尝试使用一些引导功能,例如Yii CHtml类中的Icon字形,这是我的代码:

<?php 
   echo CHtml::submitButton('<i class="icon-user"></i> Login', 
       array(
           'class' => 'btn btn-large pull-right'
       )); 
 ?>

但它有点不“识别”标签,只是将标签呈现出来,如下图所示。enter image description here

有没有人知道如何解决它(没有自己输入html标签)。

谢谢你们。

5 个答案:

答案 0 :(得分:12)

CHtml::submitButton生成<input type="submit">,无法接受其他HTML作为其内容。但是,您可以使用CHtml::tag

来尝试
echo CHtml::tag('button',
                array('class' => 'btn btn-large pull-right'),
                '<i class="icon-user"></i> Login');

这将生成一个<button>标记,可以将任意HTML作为其内容。

更新:正如frostyterrier在评论中指出的那样,有一种内置方法CHtml::htmlButton可让您更轻松地完成此操作:

echo CHtml::htmlButton('<i class="icon-user"></i> Login',
                       array('class' => 'btn btn-large pull-right'));

答案 1 :(得分:3)

尝试在htmlOptions参数中将'encode'设置为false。

<?php
    echo CHtml::submitButton('<i class="icon-user"></i> Login',
        array(
            'encode' => false,
            'class' => 'btn btn-large pull-right'
        ));
?>

答案 2 :(得分:0)

CHTML::submitbutton生成<intput type="submit" />代码,您正在尝试将HTML填入其value属性。

为什么不简单地将icon-user CSS类添加到按钮本身?

echo CHtml::submitButton('Login', array(
   'class' => 'btn btn-large pull-right icon-user'
)); 

如果它是一个Bootstrap定义的类,它应该很好地设置输入按钮的样式。

答案 3 :(得分:0)

试试这个

$this->widget("bootstrap.widget.TbButton", array(
'buttonType'=>'submit',
'label=>'Login',
'type'=>'success', //or default or warning... as you like
'icon'=>'user',
'size'=>'large', //small, mini, or just comment line for default

));

文档:http://www.cniska.net/yii-bootstrap/#tbButton

答案 4 :(得分:0)

首先你应该从subbmitButton更改为htmlButton,例如编写以下代码:

<?php echo CHtml::htmlButton('<span>Log in!</span>',array('type'=>'submit','class'=>'tbutton small pad')); ?>