Yii: проверка ClientSide для FileField и TextField

У меня есть форма yii с полем файла и обычным текстовым полем для предоставления внешнего URL-адреса изображения. Мне удалось получить обычную проверку сервера, которая проверяет, заполнено ли только одно из двух полей формы (потому что вы можете либо предоставить локальный файл для загрузки, либо URL-адрес внешнего изображения). Важно отметить, что значение атрибута «поля файла», по-видимому, доступно только после того, как установлена ​​переменная $_POST, а это означает, что обычное пользовательское правило проверки в классе модели не будет работать, поскольку значение $_POST поля файла доступен только после отправки (в переменной $_FILES).

Но если вы посмотрите на предоставленную мне картинку ниже, я хочу также ClientSide Validaton, чтобы пользователь немедленно получал обратную связь о том, что ему не разрешено заполнять оба поля. Но как мне это сделать? Я сижу над этой проблемой около 2 дней, половина времени на поиск решений... Я новичок в Yii.

http://www.prism-informatics.com/images/demo.png

С наилучшими пожеланиями, С


person Sierra101    schedule 19.12.2012    source источник
comment
Если вы создали свое поле с помощью fileField(), я думаю, вы можете проверить скрытое поле, которое было создано вместе с ним?   -  person ernie    schedule 19.12.2012
comment
Я протестировал собственный валидатор FileField от Yii. Кажется, что даже этот валидатор не может проверить поле файла на стороне клиента. Думаю, мне нужно написать свое собственное правило clientValidation и добавить некоторую проверку jQuery или javascript для поля изображения. Но, по крайней мере, теперь я в этом уверен ;-)   -  person Sierra101    schedule 20.12.2012


Ответы (1)


Я не совсем уверен, в чем ваши проблемы, поскольку вы не предоставили никакого кода, но я предполагаю, что вы забыли:

public function rules()
{
    return array(
        array('image', 'file', 'types'=>'jpg, gif, png'),
    );
}
person DarkMukke    schedule 08.01.2013