我有第三方CSS,我想在Yii2 ActiveForm
中使用它。
这里的问题是:我应该如何将类提供给表单字段?我尝试了以下但我无法获得所需的输出。
<div class="checkbox checkbox-success">
<?= $form->field($model, 'is_sold')->checkbox(); ?>
</div>
我也尝试了以下内容:
<div class="checkbox">
<?= $form->field($model, 'is_sold')->checkbox(['class'=>'checkbox-success']); ?>
</div>
但它呈现的HTML代码如下:
<div class="checkbox checkbox-success">
<div class="form-group field-mainads-is_sold has-success">
<input type="hidden" name="MainAds[is_sold]" value="0">
<label>
<input type="checkbox" id="mainads-is_sold" name="MainAds[is_sold]" value="1">
Mark as Sold
</label>
</div>
</div>
我想要的输出如下所示:
<div class="checkbox checkbox-success">
<input class="styled styled" id="checkbox10" type="checkbox">
<label for="checkbox10">
This too
</label>
</div>
我也试过这个:
<?= $form->field($model, 'is_sold', ['options' => ['class' => 'checkbox checkbox-success']])->checkbox([] ,false) ?>
但它也不起作用,它给出了如下输出:
<div class="checkbox checkbox-success field-mainads-is_sold has-success">
<label class="control-label" for="mainads-is_sold">Mark as Sold</label>
<input type="hidden" name="MainAds[is_sold]" value="0">
<input type="checkbox" id="mainads-is_sold" name="MainAds[is_sold]" value="1">
</div>
下图中的第一个复选框是我直接编写HTML代码时获得的,但我想使用ActiveForm
字段来完成。图像中的第二个复选框是表单域代码。
答案 0 :(得分:3)
我找到了解决方案。试试这个:
<?php $checkboxTemplate = '<div class="checkbox i-checks">{beginLabel}{input}{labelTitle}{endLabel}{error}{hint}</div>'; ?>
<?= $form->field($model, 'rememberMe')->checkbox(['template' => $checkboxTemplate]); ?>
我的结果:
<div class="form-group field-loginform-rememberme">
<div class="checkbox i-checks">
<label for="loginform-rememberme">
<input type="hidden" name="LoginForm[rememberMe]" value="0">
<input type="checkbox" id="loginform-rememberme" name="LoginForm[rememberMe]" value="1" checked="">
Remember Me
</label>
<p class="help-block help-block-error"></p>
</div>
</div>
答案 1 :(得分:1)
如果您正在寻找物化css设计,此模板路线可行。
<?
$checkboxTemplate = '<label>Terms and Conditions</label><div class="switch">{beginLabel}No{input}{labelTitle}<span class="lever"></span>Yes{endLabel}{error}{hint}</div>';
echo $form->field($model, 'terms', ['options' => ['class' => 'form-group required']])->checkbox(['template' => $checkboxTemplate])->label('');
?>
答案 2 :(得分:0)
尝试类似的事情: -
<?= $form->field($model, 'is_sold' ,['options' => ['class' => 'checkbox checkbox-success']])->checkbox([] ,false) ?>