错误:当附加到 <select> 元素 woocommerce 时,Select2 不允许使用选项“ajax”

Posted

技术标签:

【中文标题】错误:当附加到 <select> 元素 woocommerce 时,Select2 不允许使用选项“ajax”【英文标题】:Error: Option 'ajax' is not allowed for Select2 when attached to a <select> element woocommerce 【发布时间】:2017-10-07 12:18:12 【问题描述】:

任何机构帮助我在这个错误上浪费了太多时间,但没有运气

错误:当 Select2 附加到 元素。

在将 woocommerce 更新到 3.0.3 后,我的开发人员控制台中显示此错误此错误破坏了一些功能,例如无法添加加售和交叉文本框注意。

当我改变我的主题时,它就会消失,我无法改变我的主题。

请帮忙。

【问题讨论】:

见github.com/select2/select2/issues/679 从阅读中我认为您需要更新版本的 select 2 我不知道在哪里更改和更新这是我的主题和 woocommerce 冲突。 面临同样的问题。全新安装工作正常。 【参考方案1】:

我在我的 wordpress 网站上遇到了同样的错误,我已经修复了。

第一个我想描述这个错误的来源。 从 WC Beta 2 开始,他们已经迁移到 Select2 V4。 Select2 V4 主要与 Select2 V3 兼容,但有一些例外,主要是 AJAX 搜索输入的工作方式。 WooCommerce 有两个受影响的实例,需要对 html 标记进行一些更改才能正常工作。 例如

<input type="hidden" id="grant_access_id" name="grant_access_id" data-multiple="true" class="wc-product-search" style="width: 400px;" data-placeholder="<?php esc_attr_e( 'Search for a downloadable product&hellip;', 'woocommerce' ); ?>" data-action="woocommerce_json_search_downloadable_products_and_variations" />

改成

<select id="grant_access_id" class="wc-product-search" name="grant_access_id[]" multiple="multiple" style="width: 400px;" data-placeholder="<?php esc_attr_e( 'Search for a downloadable product&hellip;', 'woocommerce' ); ?>" data-action="woocommerce_json_search_downloadable_products_and_variations"></select>

在 wordpress 中,我看到 select2 获得了控制权,我尝试在我的 functions.php 中禁用 select2 加载。你可以在下面看到我的脚本

add_action( 'admin_enqueue_scripts', 'remove_views_select2' );

function remove_views_select2($hook) 
    if ( ( $hook == 'post.php' || $hook == 'post-new.php' ) ) 
        wp_deregister_script( 'select2' );
        // wp_register_script( 'views-select2-script' , 'http://your-site.com/wp-content/plugins/meta-box/js/select2/select2.min.js', array('jquery'), 3.2);
    

所以在我的情况下效果很好。祝你好运 ! ?

【讨论】:

在我的情况下,我从 https://cdnjs.cloudflare.com/ajax/libs/select2/3.4.3/js/select2.js 更改为 https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.js 我不在 CMS 上工作,但在自定义网络应用程序上工作

以上是关于错误:当附加到 <select> 元素 woocommerce 时,Select2 不允许使用选项“ajax”的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 和 PHP 将 <options> 附加到 <select>

Mat-Select 不显示选项

从附加元素获取 jQuery 对象的更简单方法

PHP DOM 将子元素附加到根

Jsoup:将子 <input> 元素附加到 <foorm> 不会影响表单数据

无法附加 <script> 元素