Im Folgenden finden Sie den jsp Seite Tag für Eingabetextelement:der automatische Vervollständigung nicht für Quelle des JSON-Objekt zu akzeptieren
<input name="searchTextSpan" id="searchTextSpan" type="text"/>
unten ist der Ajax-Aufruf, dass Lasten auf dcument.ready:
AUI().use("liferay-portlet-url", function(A) {
var resourceURL = Liferay.PortletURL.createResourceURL();
resourceURL.setPortletId("app_war_portlet");
resourceURL.setResourceId(resourceId);
require(["dojo/request", "dijit/registry", "dojo/on", "dojo/domReady!"], function(request){
request.post(resourceURL.toString(), {
query: ajaxData,
handleAs: "json"
}).then(function(data){
if(resourceId == 'inputTextClick'){
AUI().use("liferay-portlet-url", function(A) {
var resourceURL = Liferay.PortletURL.createResourceURL();
resourceURL.setPortletId("app_war_portlet");
if(data.cachetmpArr!=null && data.cachetmpArr.length>0){
var cacheList = JSON.stringify(data.cachetmpArr);
cacheList = cacheList.replace(/"/g, "'");
console.log('cacheList12 '+cacheList);//['106182233','206182233','306182233'];
$('#searchTextSpan').autocomplete({
width: 300,
max: 10,
delay: 100,
minLength: 1,
autoFocus: true,
cacheLength: 1,
scroll: true,
highlight: false,
source:cacheList,
}).focus(function(){
$(this).autocomplete("search", "");
});
}
});
}
});
})
})
die Quelle Attribut akzeptiert die CacheList nicht, es löst 404 URL Fehler aus. können Sie bitte vorschlagen
Ich glaube nicht, dass Sie auch die JSON bekommen. Daher müssen Sie möglicherweise debuggen, warum der Aufruf an den Server fehlschlägt. –
Ich bekomme den JSON-Objektwert console.log ('cacheList12' + cacheList); // ['106182233', '206182233', '306182233']; das ist was ich bekomme. falls ich den Wert wie cacheList = ['106182233', '206182233', '306182233'] gebe, funktioniert es! aber die objec direkt übergeben es nicht –
in Ordnung. Dann müssen Sie Ihren JSON analysieren, bevor Sie ihn an die automatische Vervollständigung übergeben. 'JSON.parse (CacheList)'. Denken Sie daran, JSON ist eine 'Zeichenfolge', während Autocomplete ein' Array' benötigt –