wkf928592 2012-03-29 15:01:41 2706次浏览 1条回复 0 0 0

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 后点击测试就点不动了,也没任何错误。这是什么原因?

  • 回复于 2012-04-19 17:12 举报

    怎么没人回答阿???enableAjaxValidation=>false可以验证,就是提交不了表单

您需要登录后才可以回复。登录 | 立即注册