2012-03-26 6 views
1

Ich möchte das Attribut eines Eingabeformulars mit einem Array von Werten festlegen (für die automatische Vervollständigungssuche verwenden). Ich habe eine JS-Array, das ein wenig etwas wie folgt aussieht:Drucken Sie ein JavaScript-Array auf HTML, eckige Klammern und Anführungszeichen intakt

var suggestions = ["value1", "value2", "value3"]; 

Mit jQuery, ich dies tat:

$("#search-input").attr("data-source", suggestions); 

gewünschte Ausgabe:

<input type='search' data-source='["value1", "value2", "value3"]' /> 

tatsächliche Ausgang:

<input type='search' data-source='value1, value2, value3' /> 

Dies bricht t Er vervollständigt automatisch, da ein Array benötigt wird (oder zumindest etwas, das wie ein JavaScript-Array aussieht).

Antwort

3

Verwenden

$("#search-input").data("source", suggestions); 

weil diese

$("#search-input").attr("data-source", suggestions); 

setzt den Attributwert (dh eine Zeichenkette) von data-source das Ergebnis der suggestions.toString(), was natürlich

"value1,value2,value3" 

FWIW, das wäre corr auch ect, obwohl unnötig kompliziert:

$("#search-input").attr("data-source", JSON.stringify(suggestions)); 
+0

Perfect, danke! –

1

Eine schnelle Lösung möglich ist

$("#search-input").attr("data-source", JSON.stringify(suggestions)); 
2

Sie haben soeben Split() Methode Array erstellen können

suggestions.split(","); 

'value1, value2, value3'.split(","); // ["value1", " value2", " value3"] 
Verwandte Themen