通过renderPartial绑定ajaxSubmit事件

时间:2013-06-26 11:17:43

标签: php jquery ajax yii

我有一个带有ajax加载形式的页面:

查看:

$(function () {
    $('.row label').on('click', function () {
        var url = "<?php echo $this->createUrl('clientForm/getField');?>";
        var formID = "<?php echo $model->id;?>";

        var fieldName = $(this).attr('data-field-name');

        if (fieldName !== undefined) {
            var callback = function (response) {
                $('body').append(response);
                LoadingLayout.hide();
            };

            LoadingLayout.show();
            $.post(url, {"fieldName": fieldName, "formID": formID}, callback);
        }
    });
});

控制器:

public function actionGetField()
{
    // some code
    echo $this->renderPartial('_field_form', array(
            'clientForm' => $clientForm,
            'model' => $model,
        ), true);
}

Controller使用CHtml :: ajaxSubmitButton()返回我的新表单,但是当我提交新表单(由ajax加载)时,它会将我重定向到新页面(form action =“url”); 我认为yii不能将ajax-submit事件处理程序绑定到由ajax加载的表单。

任何想法如何解决?

P.S。 Yii 1.1.9

2 个答案:

答案 0 :(得分:0)

我需要使用:

public function actionGetField()
{
    // some code
    echo $this->renderPartial('_field_form', array(
        'clientForm' => $clientForm,
        'model' => $model,
    ), true, true);
}

答案 1 :(得分:0)

尝试在CHtml :: ajaxSubmitButton()中将$ htmlOptions ['live']设置为true。