doufu8887 2017-02-14 07:30
浏览 66

如何解决yii2中动态表单上的select 2 widget错误

This is what the error looks like:

enter image description here

The error only exists when I use select 2 on dynamic form widget by wbrangca. And also same problem occurs for depdropdown.

Console error:

jquery.js:1468 Uncaught Error: Syntax error, unrecognized expression: #salesqty-{$i}-catagory_id
at Function.Sizzle.error (jquery.js:1468)
at Sizzle.tokenize (jquery.js:2125)
at Sizzle.select (jquery.js:2546)
at Function.Sizzle [as find] (jquery.js:869)
at jQuery.fn.init.find (jquery.js:2792)
at jQuery.fn.init (jquery.js:2909)
at jQuery (jquery.js:75)
at HTMLDocument.<anonymous> (create:809)
at fire (jquery.js:3187)
at Object.fireWith [as resolveWith] (jquery.js:3317)
yii2-dynamic-form.js:90 Uncaught TypeError: Cannot read property 'settings' of undefined
at _parseTemplate (yii2-dynamic-form.js:90)
at HTMLFormElement.<anonymous> (yii2-dynamic-form.js:37)
at Function.each (jquery.js:365)
at jQuery.fn.init.each (jquery.js:137)
at jQuery.fn.init.init (yii2-dynamic-form.js:36)
at jQuery.fn.init.$.fn.yiiDynamicForm (yii2-dynamic-form.js:19)
at create:826
at dispatch (jquery.js:4737)
at elemData.handle (jquery.js:4549)

And the javascript looks like:

var $hasSelect2 = $(widgetOptionsRoot.widgetItem).find('[data-krajee-select2]');
if ($hasSelect2.length > 0) {
    $hasSelect2.each(function() {
        var id = $(this).attr('id');
        var configSelect2 = eval($(this).attr('data-krajee-select2'));

        if ($(this).data('select2')) {
            $(this).select2('destroy');
        }

        var configDepdrop = $(this).data('depdrop');
        if (configDepdrop) {
            configDepdrop = $.extend(true, {}, configDepdrop);
            $(this).removeData().off();
            $(this).unbind();
            _restoreKrajeeDepdrop($(this));
        }
        var s2LoadingFunc = typeof initSelect2Loading != 'undefined' ? initSelect2Loading : initS2Loading;
        var s2OpenFunc = typeof initSelect2DropStyle != 'undefined' ? initSelect2Loading : initS2Loading;
        $.when($('#' + id).select2(configSelect2)).done(s2LoadingFunc(id, '.select2-container--krajee'));

        var kvClose = 'kv_close_' + id.replace(/\-/g, '_');

        $('#' + id).on('select2:opening', function(ev) {
            s2OpenFunc(id, kvClose, ev);
        });

        $('#' + id).on('select2:unselect', function() {
            window[kvClose] = true;
        });

       if (configDepdrop) {
            var loadingText = (configDepdrop.loadingText) ? configDepdrop.loadingText : 'Loading ...';
            initDepdropS2(id, loadingText);
        }
    });
} 

If I don't use the select 2 widget there will be no error on console.

  • 写回答

1条回答 默认 最新

  • dongshuogai2343 2018-01-03 21:32
    关注

    if you still need... Check for the use of single

    '

    instead of

    "

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?