jquery split textbox-Wert in Zeilen

Bin, was ich Tue, ist das erstellen einer einfachen html-Seite, in der es eine textbox. Ein Nutzer eine Eingabe für das Textfeld wie

first last
first last
first last
first last

Vorstellen, diese sind mit unterschiedlichen Namen. Was ich tun möchte, ist nehmen Sie die Eingabe in der textbox, und zeigt Sie auf dem Bildschirm mit den sich wiederholenden Namen heraus genommen, in alphabetischer Reihenfolge, und mit der option-tags Hinzugefügt um Sie herum.

Was ich

 <div id="contentdisplay"></div>
<FORM action="" method="">
     <p><LABEL for="content">Paste Code Here: </LABEL></p>
     <p><textarea id="content" cols="80" rows="40"></textarea></p>
    </FORM>



 <script type="text/javascript">
  $(document).ready(function() { 
    $('#content').change(function() {
        var test = $('#content').val();
        $("#contentdisplay").html(test);
    });     
   });
  </script>

Recht, jetzt nimmt es den Wert aus dem Textfeld, wenn der Benutzer klickt außerhalb des es und spuckt es auf den Bildschirm im inneren der "contentdisplay" div. Ich bin fest auf dem Teil, wo ich split, die Benutzer-Eingabe in Zeilen. Ich habe versucht zu testen.split('/n'), und stecken Sie es in eine variable, aber das hat nicht geklappt.

Meine Gedanken Gehen Zu Diesem

  • Während looping, teilen Sie die Formular-Eingabe von newline-Zeichen, setzen Sie jede Zeile in ein array
  • Sortieren Sie das array in alphabetischer Reihenfolge. (Entfernen Sie alle Leerzeilen oder Leerzeichen vor und nach den Zeilen in diesem Teil.)
  • Ich bin mir nicht sicher über das entfernen der doubles. In Java verwendete ich ein set, das automatisch nur dann, darf man von jedem Eintrag zu kommen.
  • Mit jquery .html() Durchlaufen array, für die Anzeige und tags hinzufügen, um

Frage mich, ob jemand kann mich aufklären über meine Ideen, und wie könnte ich dies angehen. Danke!

Hier ist die Endversion. Dank Erik für seine Hilfe.

Hier ist, was ich Tat, um es zu bekommen, wo ich wollte. Vielen Dank für die Hilfe Erik.

<script type="text/javascript">
function process() {

entered = $('#content').val();
lines = entered.split(/\n/); 
opttext = ""; 


lines = jQuery.unique(lines);
lines.sort();

for(var i in lines) {
  opttext += "<option>" + lines[i] + "</option>";
}

$('#contentdisplay').html("<select>"+opttext+"</select>");
}

$(document).ready(function() {
    $("#content").bind('change', process);
});

</script>

<div id="contentdisplay"></div>

<FORM id="myform" action="" method="">
     <p><LABEL for="content">Paste Code Here and click anywhere on the screen: </LABEL></p>
     <p><textarea id="content" cols="40" rows="10"></textarea></p>
</FORM>
  • Können Sie näher erläutern, "das hat nicht geklappt"? .split funktioniert (habe ich getestet) als ersten Schritt.
  • klar ich hab alert(test.split('/n')); und es schien zu zeigen, bis gut, aber wenn ich var Zeilen = test.split('/n'); $("#contentdisplay").html(Zeilen), es wird nichts angezeigt.
  • nicht setzen Sie Ihren regulären Ausdruck in Anführungszeichen.. ie string.split(/\n/); bemerken, kein Anführungszeichen /\n/. Siehe meine Antwort unten.
  • Tatsächlich teilen nimmt entweder ein string oder ein regulärer Ausdruck.
InformationsquelleAutor jim | 2010-02-26
Schreibe einen Kommentar