WordPress 中的 jQuery 自动完成和特殊字符

标签 jquery wordpress autocomplete special-characters ampersand

希望我不会错过这个问题的现有答案。我正在使用一个 WordPress 主题,该主题使用 jquery ui 自动完成功能在前端表单中提供类别选择。代码如下。问题是,如果类别名称包含 &,则无法显示该字符,而是在自动完成框中显示 &。我可以让它正确地显示角色吗? `

    jQuery(function(){

        /* Auto Complete */
        var availableTags = [
            <?php
                $terms_array = array();
                $terms = get_terms( 'majors', 'hide_empty=0' );

                if ($terms) foreach ($terms as $term) {
                    $terms_array[] = '"'.$term->name.'"';
                }
                echo implode(',', $terms_array);
            ?>
        ];
        function split( val ) {
            return val.split( /,\s*/ );
        }
        function extractLast( term ) {
            return split( term ).pop();
        }


        jQuery("#majors_wrap input").live( "keydown", function( event ) {
            if ( (event.keyCode === jQuery.ui.keyCode.TAB || event.keyCode === jQuery.ui.keyCode.COMMA) &&
                    jQuery( this ).data( "autocomplete" ).menu.active ) {
                event.preventDefault();
            }
        }).autocomplete({
            minLength: 0,
            source: function( request, response ) {
                // delegate back to autocomplete, but extract the last term
                response( jQuery.ui.autocomplete.filter(
                    availableTags, extractLast( request.term ) ) );
            },
            focus: function() {
                jQuery('input.ui-autocomplete-input').val('');
                // prevent value inserted on focus
                return false;
            },
            select: function( event, ui ) {

                var terms = split( this.value );
                // remove the current input
                terms.pop();
                // add the selected item
                terms.push( ui.item.value );
                // add placeholder to get the comma-and-space at the end
                terms.push( "" );
                //this.value = terms.join( ", " );
                this.value = terms.join( "" );

                jQuery(this).blur();
                jQuery(this).focus();

                return false;
            }
        });

    });
</script>`

最佳答案

只需在返回的数据中替换它:terms.push( ui.item.value.replace("&","&");

关于WordPress 中的 jQuery 自动完成和特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7125333/

相关文章:

jquery - 使用 jQuery 动画内联 block 移动

javascript - 如何使用angularjs动态添加行?

javascript - 创建计算器标记系统?

javascript - jQuery UI 自动完成行为。如何在输入时搜索自由文本?

javascript - jQuery 慢压表

css - 粘性菜单 wordpress

php - 用自定义字符串替换 Woocommerce 优惠券金额行

javascript - 聊天布局问题

c - 在 vim 中为 gtk+-2.0 设置 clang_complete

javascript - 使用 Material UI react 自动完成