我真的很难让我的布局进入Yii2。为了尽可能接近最先进的技术,我读到了ActiveField
和ActiveForm
的样式,哪种有效,但不是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方式。感谢任何帮助, 感谢
答案 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]);