我在jQuery UI 1.8.6中使用了自動完成功能。我想突出顯示匹配結果。但由於某些原因,當我使用正則表達式在匹配字符周圍添加「強」標籤時,字符串正在被轉義。所以我看到[strong]matching chars[/strong]
,而不是標記文字。突出顯示jQuery UI自動完成
這是我目前使用的JavaScript:
$(function() {
$("#autocompleteinputfield").autocomplete({
source: function (request, response) {
$.ajax({
url: "someservice",
type: "GET",
dataType: "json",
data: { filter: request.term, maxResults: 10 },
success: function (data) {
response($.map(data, function (item) {
// return { label: item.ID + ' - ' + item.Name, id: item.ID, value: item.Name }
var regex = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + request.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi");
return { label: (item.ID + ' - ' + item.Name).replace(regex, "<strong>$1</strong>"),
id: item.ID,
value: item.Name
}
}))
}
});
},
select: function (event, ui) {
alert(ui.item ? ("You picked '" + ui.item.label + "' with an ID of " + ui.item.id)
: "Nothing selected, input was " + this.value);
}
});
});
更新:
「輸入」(在文本框中輸入文本在這種情況下:[輸入類型= 「文本」 的id = 「autocompleteinputfield」/]
輸出看起來像這樣:
[{ 「描述」: 「沒有什麼意義的」, 「ID」:3, 「名稱」: 「喬公共」}]
當AJAX數據來自於響應,它是什麼樣子? – 2010-11-05 15:19:41