doupo2633 2015-04-12 17:26
浏览 45
已采纳

使用ajax调用呈现表单时,客户端验证在Yii2中不起作用

Form rendered using ajax:

<?php $form = ActiveForm::begin(['id' => 'que',
        'enableClientValidation' => true
    ]); ?>
            <?php echo $form->field($model, 'fk_subject')
                    ->dropDownList(ArrayHelper::map($subjects, 'id_subject', 'name'), [
                        'class'     => 'form-control ng-pristine ng-valid ng-touched',
                        'ng-model'  => 'que.fk_subject',
                        'prompt'    => 'Select subject',
                        'ng-change' => 'fillTopic(que);'
                    ]); ?>
            <?php echo $form->field($model, 'fk_topic')
                    ->dropDownList([], [
                        'class'     => 'form-control ng-pristine ng-valid ng-touched',
                        'ng-model'  => 'que.fk_topic',
                        'prompt'    => 'Select topic',
                        'ng-change' => 'openAddTopic(que);',
                        'ng-options' => 'topic.id_subject as topic.name for topic in topics',
                    ]); ?>
            <?php echo $form->field($model, 'type')
                    ->dropDownList($questionTypes, [
                        'class'     => 'form-control ng-pristine ng-valid ng-touched',
                        'prompt'    => 'Select question type',
                        'ng-model'  => 'que.type',
                        'ng-change' => 'addAnswerOptions(que);',
                    ]); ?>
                    <?php echo Html::submitButton('Save',
                        ['class' => 'btn btn-primary',
                            'name' => 'Save']) ?>
<?php ActiveForm::end(); ?>

I loaded the above form using ajax in yii2 and problem is client side validation is not working with it. If I load the form content on window load it works fine.

  • 写回答

2条回答 默认 最新

  • doucuo8618 2015-04-18 05:39
    关注

    OK I find the solution, I will have to use renderAjax to get the form html or will have to add beginpage and beginend function if I use renderPartial

    <?php $this->beginPage(); ?>
    <?php $this->beginBody(); ?>
    // Form and content redenered using ajax
    <?php $this->endBody(); ?>
    <?php $this->endPage(); ?>
    

    so that yii can add client validation script with the rendered content

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化