如何在Yii2中禁用按钮

时间:2015-10-21 08:51:47

标签: php button yii2

我尝试在用户未登录时停用创建项目 Button,按钮将Hidedisable

这是我的条件:

<p>
    <?php
    if (Yii::$app->user->isGuest) {
        Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs']);
    } elseif(Yii::$app->user->identity->username) {
        Html::a('Create a Project', ['create'], ['class' => 'btn btn-success']);
    }
    ?>
</p>

它正常工作,但是,当用户登录时,按钮已经隐藏了!

如何在Yii2中禁用或隐藏按钮并解决该问题?

有关于此的任何教程吗?

4 个答案:

答案 0 :(得分:4)

您需要添加disabled属性来禁用该按钮,或者完全隐藏它,您可以使用CSS style=display: none;

两者都在下面的代码中使用

<p>
    <?php
        if (Yii::$app->user->isGuest) {
            // This button will be displayed, but is disabled 
            Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs', 'disabled' => 'disabled']);
        } elseif(Yii::$app->user->identity->username) {
            Html::a('Create a Project', ['create'], ['class' => 'btn btn-success']);
        } else {
            // This button will not be displayed (it is hidden)
            Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs', 'style' => 'display: none;']);
        }
    ?>
</p>

答案 1 :(得分:2)

如果您只是在用户中检查logged,请使用!Yii::$app->user->isGuest并忘记echo

if (!Yii::$app->user->isGuest) {
        echo Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs'])
} 

答案 2 :(得分:2)

首先,您无法禁用disabled标记。 Button属性在<?= Html::Button('Project', ['class' => 'btn btn-success', 'disabled' => Yii::$app->user->isGuest ]) ?>标记上正常工作,例如:

a

如果您确实要禁用<a id="a1" href="http://www.google.com">Google 1</a> 标记,则可以使用此示例:

<强> HTML:

$('#a1').attr('disabled', 'disabled');

$('a').on('click', function(e) {
    if ($(this).attr('disabled') == 'disabled') {
        e.preventDefault();
    }
});

<强>使用Javascript:

<div i="button" class="ui-dialog-button">
<button type="button" i-id="logout-ok">确定</button>
<button type="button" i-id="logout-cancel" class="cancel">取消</button></div>

答案 3 :(得分:-1)

尝试以下代码:

<?= Html::a('Create a Project', ['create'],['class' =>'btn btn-primary disabled']); ?>