上传图片时验证问题 [ 新手入门 ]
model里的rules()
array('imageName','file','types'=>'jpg,png,gif','allowEmpty'=>false),
控制器代码
public function actionIndex()
{
$model = new Image();
if(isset($_POST['Image'])){
echo "<script type='text/javascript'>alert('ok');</script>";
}
$this->render('index',array("model"=>$model));
}
view里代码
<div class="form">
<?php
$form=$this->beginWidget('CActiveForm', array(
'id'=>'test',
'enableClientValidation'=>true,
'enableAjaxValidation'=>false,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
'method'=>'POST',
'htmlOptions'=>array("enctype"=>"multipart/form-data")
));
?>
<div class="row">
<?php echo $form->labelEx($model,'imageName');?>
<?php echo CHtml::activeFileField($model, 'imageName') ?>
<?php echo $form->error($model, 'imageName',array(),false) ?>
</div>
<div class="row buttons"><?php echo CHtml::submitButton('测试'); ?></div>
</div>
<?php $this->endWidget();?>
我折腾了半天就是不验证,这是为什么呢?我写的有问题吗? 如果我在控制器中这样写:
public function actionIndex()
{
$model = new Image();
if(isset($_POST['Image'])&& $model->validate()){
echo "<script type='text/javascript'>alert('ok');</script>";
}
$this->render('index',array("model"=>$model));
}
就可以验证,但这样页面就刷新了,其他表单内容都没了,我不想这样。
我有几个疑惑,希望各位帮忙解答:
1、file验证规则是通过JS验证还是Ajax验证?
2、为什么我一开启 enableAjaxValidation=>true
后点击测试就点不动了,也没任何错误。这是什么原因?
wkf928592
注册时间:2011-10-08
最后登录:2019-03-25
在线时长:18小时1分
最后登录:2019-03-25
在线时长:18小时1分
- 粉丝6
- 金钱1180
- 威望0
- 积分1360