Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii ActiveForm:通过jQuery.load加载表单_Php_Javascript_Jquery_Yii - Fatal编程技术网

Php Yii ActiveForm:通过jQuery.load加载表单

Php Yii ActiveForm:通过jQuery.load加载表单,php,javascript,jquery,yii,Php,Javascript,Jquery,Yii,我有一个按钮可以触发$(“#元素”).load事件。此按钮和#元素位于“页面A”内 在该元素中加载了一个Yii活动表单(我们称之为“pageb”)。此activeform配置为ajaxvalidation=true。这显然失败了,因为调用activeform时不会加载jquery.yiiactiveform.js文件,因为yiiactiveform.js文件需要位于主布局(A页)中,并将jquery.yiiactiveform.js引用放在其中 一种解决方案是通过以下方式在“页面a”上预加载ac

我有一个按钮可以触发$(“#元素”).load事件。此按钮和#元素位于“页面A”内

在该元素中加载了一个Yii活动表单(我们称之为“pageb”)。此activeform配置为ajaxvalidation=true。这显然失败了,因为调用activeform时不会加载jquery.yiiactiveform.js文件,因为yiiactiveform.js文件需要位于主布局(A页)中,并将jquery.yiiactiveform.js引用放在其中

一种解决方案是通过以下方式在“页面a”上预加载activeform JS:

Yii::app()->clientScript->registerCoreScript('yiiactiveform');
并具有相应的JS代码,该代码将表单操作绑定到“page a”中:

<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
$('#register-form').yiiactiveform({'validateOnSubmit':true,....,'enableAjaxValidation':true}]});
});
/*]]>*/
</script>

/**/
另一种方法是在B页中调用这些JS,但这意味着在B页中放置head标记。我的B页现在只包含表单元素,没有html,没有body标记,只有表单标记,因为我们无论如何都不需要它,只有在A页中加载()才能访问此页

然而,这种方法并不是很好。这就像在加载的表单中手动绑定适当的JS调用一样,违背了框架的目的。我认为如果Yii-activeformjs支持jquery的on()或live()方法,它就可以工作了


还有其他建议吗?

找到了。对页面B的renderPartial()调用必须是:

$this->renderPartial('viewfile', array('var'=> $val),false,true);

第四个参数必须设置为true。这样,它将处理视图文件并在其中插入相应的JS代码。

找到了它。对页面B的renderPartial()调用必须是:$this->renderPartial('viewfile',array('var'=>$val),false,true);第四个参数必须设置为true。这样,它将处理视图文件并在其中插入相应的JS代码。很好,您找到了解决方案,您可以回答自己的问题,并接受该答案。谢谢。但是像我这样的新帐户有时间限制。我的问题是jQuery被加载了两次