AJAX提交的yii CActiveForm

AJAX提交的yii CActiveForm,yii,Yii,我使用以下代码创建表单: <?php $form=$this->beginWidget('CActiveForm', array( 'id'=>'contacts-form', 'enableAjaxValidation'=>false, )); ?> 有没有办法通过AJAX提交表单?请记住,我不是在说AJAX验证。一种方法是使用内置的帮助程序,如下所示: <?php $form=$this->beginWidget('CActi

我使用以下代码创建表单:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'contacts-form',
    'enableAjaxValidation'=>false,

)); ?>


有没有办法通过AJAX提交表单?请记住,我不是在说AJAX验证。

一种方法是使用内置的帮助程序,如下所示:

<?php $form=$this->beginWidget('CActiveForm', array(
  'id'=>'contacts-form',
  'enableAjaxValidation'=>false,
)); ?>
<!-- your form elements here -->
<?php echo CHtml::ajaxSubmitButton(Yii::t('app', 'Submit')); ?>
<?php $this->endWidget(); ?>

这会自动将jqueryajax调用绑定到SUbmit按钮,该按钮将表单值发布到from的动作URL


当然,您也可以自己编写AJAX代码,但Yii也有这个helper函数。

这个helper ajaxSubmitButton函数不是很有用,特别是因为它使用jquery.AJAX(),而没有使用jquery 1.5+中的“Promise interface”,所以您必须通过成功回调来处理响应。如果他们只使用jquery.submit(),这会更干净。老实说,你最好还是自己滚吧

我感到失望的是,像Yii Bootstrap或YiiBooster这样的(相对流行的)引导集成在生成表单以刷新ajax响应数据方面也没有提供太多功能(我不是说验证)。我经历了学习的所有麻烦&采用了一个框架,但最终还是用html/js/css编码了我自己的前端演示和逻辑。。。哦,好吧


我仍然是一个Yii爱好者,主要是因为他们的gii生成器和对带有“行为”的准mixin模式的支持。它可以在后端生成干净的代码,但框架在前端和视图渲染方面还有一些工作要做。他们的“CHtml”库现在真的没有剪切它。

你有ID,为什么不能用它来调用submit()?