Yii2中的样式表(ActiveField / ActiveForm)

时间:2016-06-07 18:50:09

标签: php yii yii2

我真的很难让我的布局进入Yii2。为了尽可能接近最先进的技术,我读到了ActiveFieldActiveForm的样式,哪种有效,但不是100%。也许你看错了什么。

让我开始使用我想要的HTML:

// normal state without any validations
<p>
    <label for="signup_name">Name, Surname:<span class="required">*</span></label>
    <input type="text" name="signup_name" id="signup_name" value="" />
</p>

// input field after validation fails (ajax + reload)
<p>
    <label for="signup_email">E-mail:<span class="required">*</span></label>
    <input class="error-input" type="text" name="signup_email" id="signup_email" value="" />
    <span class="error-msg">E-mail must be filled !</span>
</p>

这是当前状态,布局位于:

<p>
    <label class="control-label" for="signupform-username">Username</label>
    <input id="signupform-username" class="form-control" type="text" name="SignupForm[username]">
    <span class="error-msg">Username may not be empty</span>
</p>

这是我的PHP / Yii2部分

<?php
$form = ActiveForm::begin([
    'id' => 'form-signup',
    'fieldConfig' => [
        'template' => "<p>{label}{input}{error}</p>",
        'errorOptions' => [
            'tag' => 'span',
            'class' => 'error-msg',
        ],
    ],
]);

echo $form->field($model, 'username', [
    'inputTemplate' => '{input}',
])->textInput(['autofocus' => false])
?>

问题:

  • 即使没有错误,也会始终呈现<span class="error-msg">。澄清:span没有内容,并且呈现如下: <span class="error-msg"></span>(如果实际上有错误,我希望它在那里,而不是在
  • 之前作为占位符
  • 我无法弄清楚如何将错误类应用于输入,这适用于ajax - 验证,以及非JS方式。

感谢任何帮助, 感谢

2 个答案:

答案 0 :(得分:2)

如果需要,可以为每个字段添加课程

<?= $form->field($model, 'title')->textInput(['class'=>'form-control'])->label('Your Label',['class'=>'label-class']) ?>

答案 1 :(得分:0)

尝试禁用输入字段的ajax验证。

let filteredArray = array.filter { $0.aWidth > 0.0 && $0.aWidth < 50.0 }
print(filteredArray)

 echo $form->field($model, 'username', ['enableAjaxValidation' => false]);