我正在写一个窗口小部件,添加字段到表单中使用Pjax。为了使用YiiActiveForm js添加验证规则,我通过从表单属性获取规则并使用以下命令分配规则来动态构建规则:
$('#w1').yiiActiveForm('add', attributeRules);并在我的run方法上将它们保存到位于我的小部件资产/js/rules.js中的一个文件中:
public function run() {
Pjax::begin($this->pjaxOptions);
$fields = $this->_listFields();
$this->_setFormRules();
$view = $this->getView();
FofAsset::register($view);
echo $fields;
Pjax::end();
}问题是,它总是显示rules.js的第一个版本(对于第一个字段),当添加第二个字段时,rules.js只包含第一个字段(添加到页面中的字段)的规则。即使widget/assets/js上的文件具有这两个字段的规则。我已经在我的AssetBundle上使用forceCopy和appendTimestamp了。
问题是rules.js文件在调用Pjax之后没有被更新。
有什么想法吗?
https://stackoverflow.com/questions/38445528
复制相似问题