MaskedInput仅在第一个元素工作-动态形式wbraganca-Yii2

MaskedInput仅在第一个元素工作-动态形式wbraganca-Yii2,yii2,yii2-advanced-app,yii-extensions,yii-components,Yii2,Yii2 Advanced App,Yii Extensions,Yii Components,我正在使用一些插件yii\widgets\MaskedInputin动态表单,我注意到插件只在第一个元素工作,当添加一个选项时,但是这个正常加载,但是条目分数不验证只有数字的条目,而是允许您作为正常条目输入文本。请给我一些建议。谢谢你 我的代码是这样的 _形式 在这里你可以看到问题所在 您需要使用javascript将MaskedInput插件绑定到新创建的输入。您可以使用wbraganca/yii2 dynamicform的afterInsert事件包装对扩展所基于的.inputmask jq

我正在使用一些插件yii\widgets\MaskedInputin动态表单,我注意到插件只在第一个元素工作,当添加一个选项时,但是这个正常加载,但是条目分数不验证只有数字的条目,而是允许您作为正常条目输入文本。请给我一些建议。谢谢你

我的代码是这样的

_形式

在这里你可以看到问题所在

您需要使用javascript将MaskedInput插件绑定到新创建的输入。您可以使用wbraganca/yii2 dynamicform的afterInsert事件包装对扩展所基于的.inputmask jquery插件的调用

在视图的顶部添加以下内容,它将开始为每个新添加的行工作

$js =<<< JS
    $(".dynamicform_wrapper").on("afterInsert", function(e, item) {

        $(item).find("input[name*='[price]']").inputmask({
            "alias":"decimal",
            "groupSeparator":".",
            "digits":0,
            "autoGroup":true,
            "removeMaskOnSubmit":true,
            "rightAlign":false
        });
    });
JS;
$this->registerJs($js, \yii\web\View::POS_LOAD);

请添加您的完整视图,不工作是什么意思?您确定$indexQuestion不是空的吗?并且不会对多个字段重复相同的值?您在第一次添加后添加的选项忽略了MaskinPut的验证添加了一个答案,看看它是否有助于您解决问题谢谢,我认为这是一个问题,我认为您不必在插入后的事件中添加Masket输入。@MiguelAngel欢迎您,你可以浏览插件支持的事件的文档,或者更好地查看源脚本。在yii?@MiguelAngel的官方页面之外的其他地方推荐它基本上是一个基于javascript的插件,yii已经为它编写了一个包装器,这些事件是基于javascript的,您可以在这里随时参考js插件的文档
$js =<<< JS
    $(".dynamicform_wrapper").on("afterInsert", function(e, item) {

        $(item).find("input[name*='[price]']").inputmask({
            "alias":"decimal",
            "groupSeparator":".",
            "digits":0,
            "autoGroup":true,
            "removeMaskOnSubmit":true,
            "rightAlign":false
        });
    });
JS;
$this->registerJs($js, \yii\web\View::POS_LOAD);