我正在使用JQuery UI自動完成功能,我有一組項目通過ajax與搜索引擎強調的條款(因此標籤已經包含html)返回。問題是,每次我選擇一個項目時,帶有html標籤的值被插入到當然不好的文本框中。我不知道是否有反正我可以剝去標籤所有標籤插入文本框之前JQuery UI自動完成:在插入輸入字段之前如何從標籤剝離標籤?
var cache = {}, lastXhr;
$('#location_name').autocomplete({
source: function(request, response) {
var q = request.term;
if (q in cache) {
response(cache[ q ]);
return;
}
lastXhr = $.getJSON("location_search/", {q: q}, function(data, status, xhr) {
$.each(data, function(i, v){
data[i].label = v.name + (v.address !== null ? ', ' + v.address : '');
});
cache[ q ] = data;
if (xhr === lastXhr) {
response(cache [q]);
}
});
},
select: function(event, ui) {
$('#location_id').val(ui.item.id);
$('#selected_location').html(ui.item.label);
}
}).data("autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>"+ item.label + "</a>") // + + "<br>" + item.desc + "</a>"
.appendTo(ul);
};
謝謝德,在stripHTML功能會在得心應手,問題不在$('#selected_location'),但是,我應該從我的代碼中刪除它。問題出在於$('#location_name')的值,一旦選擇了下拉列表的值,它就會自動設置。 – mr1031011
對不起,我已經更新了答案。希望新的功能可以修復它,否則我有另一個想法。讓我知道:) – Tak
謝謝德,這個想法很好,我可以看到它應該工作,不幸的是它不。我認爲問題在於它在 之前踢了一段時間經過一些更多的試驗和錯誤之後,我發現瞭解決方案:(似乎無法弄清楚如何在評論中發佈漂亮的代碼)。再次感謝您的幫助 'function stripHTML(oldString){ \t return oldString.replace(/(<([^>] +)>)/ ig,「」); 。 } $( '#LOCATION_NAME')結合( 'autocompleteclose',函數(){\t \t \t $(本).VAL(stripHTML($(本).VAL())); \t}) ;' – mr1031011