【问题标题】:Yii : How to make a button with an html tag inside the labelYii:如何在标签内制作带有 html 标签的按钮
【发布时间】:2013-01-12 07:12:08
【问题描述】:

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

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

但它有点不“识别”标签,只是像下面的图片一样呈现标签。

有谁知道如何解决它(无需输入 html 标签本身)。

谢谢你们。

【问题讨论】:

    标签: php twitter-bootstrap yii


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      CHTML::submitbutton 生成 &lt;intput type="submit" /&gt; 标记,而您正试图将 HTML 塞入其 value 属性中。

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

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

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

      【讨论】:

        【解决方案3】:

        CHtml::submitButton 生成一个&lt;input type="submit"&gt;,它不能接受额外的 HTML 作为其内容。但是,您可以使用CHtml::tag 做一些事情:

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

        这将生成一个&lt;button&gt; 标记,可以将任意 HTML 作为其内容。

        更新: 正如frostyterrier 在 cmets 中指出的那样,有一个内置方法 CHtml::htmlButton 可以让您更轻松地做到这一点:

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

        【讨论】:

        • 他不能用yiiframework.com/doc/api/1.1/CHtml#button-detail吗?出于跨浏览器兼容性的原因,我通常也会添加 type="submit"。
        • @frostyterrier:CHtml::button 的标签硬编码为&lt;input&gt;。 AFAIK 与 &lt;button&gt; 的兼容性问题至少可以追溯到 IE 7。
        • 对不起,你是对的。我的意思是:yiiframework.com/doc/api/1.1/CHtml#htmlButton-detail
        • @frostyterrier:你说得对,我不知何故错过了这一点。谢谢!
        • 太棒了!!!我通过添加“类型”属性作为提交得到它: Login', array('class' => 'btn btn -large pull-right', 'type' => 'submit')); ?> 现在可以了 :D 谢谢大家!!
        【解决方案4】:

        试试这个

        $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

        【讨论】:

          【解决方案5】:

          首先你应该把subbmitButton改成htmlButton,例如写如下代码:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-10-17
            • 2012-10-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-29
            • 2021-09-29
            • 1970-01-01
            相关资源
            最近更新 更多