我有一个看起来像的链接
<a class="fancy" href="/site/feedback">feedback</a>
阿贾克斯调用:
$('.fancy').fancybox({
wrapCSS: 'custom-fancy',
padding: 0,
type: 'ajax'
});
单击fancybox 加载控制器发送的内容。
$this->renderPartial('_feedback')
反馈视图:
<?php
/* @var $this Controller */
/* @var $model FeedbackForm */
/* @var $form CActiveForm */
$form = $this->beginWidget('CActiveForm', array(
'id' => 'feedback-form',
'enableClientValidation' => TRUE,
)); ?>
<div><?= $form->textArea($model, 'feedback') ?></div>
<?=$form->error($model, 'feedback')?>
<? $this->widget('CCaptcha') ?>
<?=$form->textField($model, 'verifyCode', array('placeholder' => 'Captcha code'))?>
<div><?=CHtml::submitButton('Send', array('class' => 'r button'))?></div>
<? $this->endWidget() ?>
问题是这个加载的表单上没有 javascript/ajax 验证。我认为,这是因为在 ajax 调用后没有加载一些 Yii 脚本(可能是 yiiActiveForm.js,我不知道)。这种情况的最佳解决方案是什么?