Все это состоит из 8-ми input type file.
Вид:
Код: Выделить всё
<?php for ($i = 1; $i < 9; $i++) : ?>
<label class="b-field-img__item-empty" id="images_<?= $i ?>">
<?= $form->field($galleryForm, 'images[]')->label(false)->fileInput([
'id' => 'image_input_' . $i,
'class' => 'b-field-img__input'
]) ?>
</label>
<?php endfor; ?>
Я сделал clientValidateAttribute(), который выглядит так:
Код: Выделить всё
public function clientValidateAttribute($model, $attribute, $view)
{
$message = json_encode($this->message, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
return <<<JS
var valid = false;
$('#gallery-upload input[type="file"]').each(function(index, item) {
if($(item).val().length > 0) {
valid = true;
}
});
if(!valid) {
messages.push($message);
}
return valid;
JS;
}
А мне надо отображать только ОДНУ ошибку и в другом месте.
Вот скрин как есть: http://dl4.joxi.net/drive/2018/12/13/00 ... 9706b2.jpg
Вот как хочу: http://dl3.joxi.net/drive/2018/12/13/00 ... 31e7c8.jpg
Вопрос.
В каком направлении мне копать? Я подозреваю что надо работать с yii.activeForm.js
Но не совсем понимаю в каком направлении идти даже...
* Хочу обратить внимание, что использовать готовые решения для такой галереи я не могу - нужен конкретный внешний вид.