html array-Elemente mit jquery
ich habe eine HTML-array;
<input class="input_box" name="authors[]" id="author1"/>
was ich will zu tun ist, bekommen Sie den Wert dieses array eine Anzeige, ohne die Seite aktualisieren (ich will den Wert anzuzeigen, direkt neben dem Eingabefeld, in einem unabhängigen div
)
$(document).ready(function(){
$("input[id^="author"]").change(update);
});
function update(){
var authors=new Array();
$("input[id^="author"]").each(function(){authors.push($(this).text()) });
var author= '"' + authors.join('", "') + '"';
$('#val-authors').html('authors:<span class="red"> "'+author+'"</span>');}
nur, was ich sehe, in <div id="val-authors">
ist, "",
was bin ich?
vielen Dank im Voraus..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Auswahl:
ist falsch, weil Sie versuchen, verwenden Sie doppelte Anführungszeichen innen doppelten Anführungszeichen. Eines der Paare muss in single-quotes.
Wenn du mit einem JS-debugger sollte dies sofort angezeigt werden.
FWIW, dies ist ein sauberer Weg um das benötigte array:
Ihre "html-Feld" ist und nicht ein array überhaupt, selbst unter der Annahme es gibt eine Reihe von anderen ähnlichen Eingaben (obwohl, wenn das Formular abgeschickt wird Ihre gewählte server-side-Sprache, wahrscheinlich hast du Zugriff auf die Werte der Eingänge mit dem gleichen Namen wie ein array). Anyway...
Das Hauptproblem ist, dass Ihre JS hat einen syntax-Fehler:
Wenn Sie möchten, um Doppel-Anführungszeichen in einem double-quoted " string literal Sie haben zu tun, entkommen Sie:
Oder zitieren Sie die Zeichenfolge mit singles:
Kann es effizienter sein, um zu vermeiden, die Attribut-startet-mit-Selektor mit dem id-Attribut, und wählen Sie durch das name-Attribut fest, das für jQuery in eckigen Klammern in die atttribute Namen müssen mit backslashes escaped werden, und für den JS-string-Literale umgekehrte Schrägstriche müssen ebenfalls escaped werden:
Auch, um den Wert eines Eingangs mit jQuery verwenden
.val()
eher als.text()
, aber es ist effizienter, nurthis.value
:Ich würde auch empfehlen deklarieren von arrays mit
= []
eher als= new Array()
.authors[]
Elemente, aber mein Punkt über das array ist, dass html nicht haben-arrays.)Ändern:
Zu: