动态形式wbraganca的yii2插件只在第一个元素工作
我正在wbraganca动态表单中使用一些插件(yii\widgets\MaskedInput和kartik\select2\select2)。 我注意到这两个插件只在第一个元素工作。 请给我一些建议。谢谢你。 我的代码是这样的动态形式wbraganca的yii2插件只在第一个元素工作,yii2,Yii2,我正在wbraganca动态表单中使用一些插件(yii\widgets\MaskedInput和kartik\select2\select2)。 我注意到这两个插件只在第一个元素工作。 请给我一些建议。谢谢你。 我的代码是这样的 <?= $form->field($detail, "[{$i}]item_id")->widget(Select2::classname(), [ 'data' => ArrayHelper::map(Item::find()->
<?= $form->field($detail, "[{$i}]item_id")->widget(Select2::classname(), [
'data' => ArrayHelper::map(Item::find()->all(), 'id', 'name'),
'language' => 'en',
'options' => ['placeholder' => 'Select Items ...', 'onchange' => 'getItemPrice($(this))'],
'pluginOptions' => [
'allowClear' => true
],
]) ?>
<?= $form->field($detail, "[{$i}]qty")->widget(\yii\widgets\MaskedInput::className(),
[
'clientOptions' => [
'alias' => 'numeric',
'groupSeparator' => ',',
'digits' => 0,
'autoGroup' => true,
'removeMaskOnSubmit' => true,
'rightAlign' => false,
],
'options' => [
'class' => 'form-control',
'onchange' => 'calculateSubtotal($(this))',
]
]) ?>
当您添加新元素(表单)时,我希望您重新初始化小部件。请参阅下面的链接,这与您的情况相同,但与您的情况不完全相同
当您添加新元素(表单)时,我希望您重新初始化小部件。请参阅下面的链接,这与您的情况相同,但并不完全符合您的需要
编写者需要pceuropa/yii2表单开发母版编写者需要pceuropa/yii2表单开发母版最后我找到了这个问题的答案。它实际上在github.com/wbraganca中得到了回答。 以下是我的工作: 1.对于kartik/select2,修改源代码yii2-dynamic-form.js(记住删除web/assets文件以使其生效)
var\u restoreSpecialJs=函数(widgetOptions){
var widgetoptionroot=\u getwidgetoptionroot(widgetOptions);
//“jquery.inputmask”
var$hasInputmask=$(widgetOptionsRoot.widgetItem).find(“[data plugin inputmask]”);
如果($hasInputmask.length>0){
$hasInputmask.each(函数(){
$(this.inputmask('remove');
$(this.inputmask)(eval($(this.attr('data-plugin-inputmask'));
});
}
$view->registerJs("var {$this->_hashVar} = {$encOptions};", View::POS_READY);
到
请记住使用已编辑文件中的MaskedInput。
谢谢。我终于找到了这个问题的答案。它实际上在github.com/wbraganca中得到了回答。 以下是我的工作: 1.对于kartik/select2,修改源代码yii2-dynamic-form.js(记住删除web/assets文件以使其生效)
var\u restoreSpecialJs=函数(widgetOptions){
var widgetoptionroot=\u getwidgetoptionroot(widgetOptions);
//“jquery.inputmask”
var$hasInputmask=$(widgetOptionsRoot.widgetItem).find(“[data plugin inputmask]”);
如果($hasInputmask.length>0){
$hasInputmask.each(函数(){
$(this.inputmask('remove');
$(this.inputmask)(eval($(this.attr('data-plugin-inputmask'));
});
}
$view->registerJs("var {$this->_hashVar} = {$encOptions};", View::POS_READY);
到
请记住使用已编辑文件中的MaskedInput。
谢谢。在阅读了wbraganca github中的一些问题后,我决定使用该回购协议中的这个叉子
https://github.com/vivekmarakana/yii2-dynamicform
但在某些情况下,我在
widgetOptions
数组中的fork仍然存在问题。请手动修复它们,方法是删除错误行中的索引([i]
)。在阅读了wbraganca github中的一些问题后,我决定从该repo中使用此fork
https://github.com/vivekmarakana/yii2-dynamicform
但在某些情况下,在
widgetOptions
数组中,这个fork对我来说仍然有问题。请手动修复它们,方法是删除该索引([i]
)错误行。我认为你的问题与此重复,这是不同的。它只问如何迭代。但我的问题是在添加另一行后,插件不再工作。我认为你的问题与此重复,这是不同的。它只问如何迭代。但我的问题是在添加另一行后,插件不再工作。仍然不理解如何添加元素。当单击“添加新行”时,在控制台中我收到错误:未捕获引用错误:未定义initSelect2Loading可能我应该更改主题如何以动态形式重新添加Select2 kartik?仍然不理解如何添加元素。当单击“添加新行”时,在控制台中我收到错误:未捕获引用错误或者:未定义初始化Select2Loading可能我应该更改主题如何以动态形式重新初始化Select2Kartik?