2
希望我不会错过已经存在的对这个问题的答案。我正在使用WordPress的主题,使用jQuery UI的自动完成提供前端形式的类别选择。代码如下。问题是,如果类别名称有&,则不能显示该字符,而是在自动填充框中显示&
。我可以让它正确显示角色吗? `jQuery自动完成和WordPress中的特殊字符
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内容的新行中,并尝试替换现有的内容。所有这些都使自动完成功能停止工作。可能是因为我不知道我在做什么:-)我需要把它放在哪里?哦,我应该补充一下,即使在自动完成框中,它显示'&',当我实际做出选择时显示&...所以它只是在自动完成的建议,它的错误。 – LJC