Yii:FileField和TextField上的客户端验证

Yii:FileField和TextField上的客户端验证,yii,validation,filefield,Yii,Validation,Filefield,我有一个带有文件字段和普通文本字段的yii表单,用于提供外部图像url。我设法得到了一个正常的服务器验证工作,它检查两个表单字段中只有一个字段被填写(因为您可以提供一个本地文件进行上传,也可以提供一个外部图片URL)。需要注意的是,“文件字段”的属性值似乎只有在设置了$\u POSTvar之后才可用,这意味着模型类中的常规自定义验证规则将不起作用,因为文件字段的$\u POST值只有在提交后才可用(在$\u FILESvar中) 但是如果你看我下面提供的图片,我还需要一个客户端验证,这样用户可以

我有一个带有文件字段和普通文本字段的yii表单,用于提供外部图像url。我设法得到了一个正常的服务器验证工作,它检查两个表单字段中只有一个字段被填写(因为您可以提供一个本地文件进行上传,也可以提供一个外部图片URL)。需要注意的是,“文件字段”的属性值似乎只有在设置了
$\u POST
var之后才可用,这意味着模型类中的常规自定义验证规则将不起作用,因为文件字段的
$\u POST
值只有在提交后才可用(在
$\u FILES
var中)

但是如果你看我下面提供的图片,我还需要一个客户端验证,这样用户可以立即得到反馈,不允许同时填写这两个字段。但我如何做到这一点呢?我在这个问题上坐了大约两天,一半的时间都在寻找解决方案……我对Yii是新手

致以最良好的祝愿,
我不能完全确定您的问题是什么,因为您没有提供任何代码,但我认为您忘记了:

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

如果您使用fileField()创建了字段,我相信您可以检查随它一起创建的隐藏字段?我测试了Yii自己的fileField验证器。看起来,即使验证器也无法在客户端验证文件字段。我想我必须编写自己的clientValidation规则,并为图像字段输入一些jQuery或javascript验证。但至少,我现在有把握;-)