2009-05-18 5 views
1

Ich bin auf der Suche nach einer CSV-formatierten Zeichenfolge, um den Wert eines Eingabetextfeldes mit den OPTION-Werten aus einem SELECT-Feld festzulegen.jQuery erhalten verbleibende OPTION Werte im CSV-Format

$ .map ($ ('# addedchargeamtid Option'), Funktion (e) {var exp = $ (e) .text(); alert (exp);})

Bei der Verwendung einer Kartenfunktion scheint es jedoch jedes Mal den Wert zu überschreiben. Ich kann nicht herausfinden, wie man diese irgendwie zusammenführt.

BTW Dank an alle jQuery Gurus heute, viel Requisiten auf meine Probleme !!!

AKTUALISIERUNG:

<option value="123">123</option> 
<option value="asd">asd</option> 
<option value="trr">trr</option> 
<option value="345">345</option> 

Ich brauche dies:

123, asd, trr, 345

Aber die Optionen sind dynamisch und können hinzugefügt oder entfernt werden, so könnte es sein, 1 oder 100

NEU:

Nun, das funktioniert irgendwie. es gibt mir 4 Optionen des gleichen Artikels, wenn ich es nur einmal hinzugefügt habe. auch die versteckten Textfeld nicht mit dem CSV-Wert

// Add remove button 
$('#addButton').click(function() { 
    $('#removeButton').show(); 

    // Add 
    var myOptions = $('#typedchargeamtid').val(); 
    $.each(myOptions, function() { 
     $('#addedchargeamtid').append(
     $('<option></option>').val(myOptions).html(myOptions) 
    ); 
    }); 

    var txt = $('#addedchargeamtid').val() || []; 
     $('#commasepchargeamtid').val(txt.join(',')); 
    }); 

Thanks again

+0

so, was Sie wollen, ist ein Textfeld mit den Werten aus der bevölkerten Dropdown-Liste? mit einem Komma, das jeden Wert trennt? – TStamper

+0

ja. Dies ist der zweite Teil meiner anderen Frage. http://stackoverflow.com/questions/879842/jquery-enable-disable-show-hide-button-w-select-options-get-remaining-option-va –

+0

Ich nehme an, Sie können es einfach in eine setzen each() -Methode und speichert jeden Wert separat, aber nicht sicher, ob das funktionieren würde – TStamper

Antwort

6

Sie jede statt Karte verwenden können:

var options = Array(); 
    $('#addedchargeamtid option').each(function(index){ 
     options[index] = $(this).val(); 
    }); 

    $('#commasepchargeamtid').val(options.join(',')); 
+0

versuchen, dies zu integrieren, aber nicht funktioniert –

+0

Ich testete den Code in der Antwort und es funktioniert sicher. Kannst du erklären, was nicht funktioniert? –

+0

nach dem Refactoring meines Codes habe ich das zur Arbeit, Super Danke :) –

0

Die JQuery documentation heißt es aktualisieren, dass die $ .val() Funktion, wenn sie auf einer ausgewählten verwendet wird eine Liste der ausgewählten Werte zurückgeben. Einfach das mit einem array.join zu verwenden, sollte erreichen, was Sie suchen, glaube ich.

var txt = $('#addedchargeamtid option').val() || []; 
$('#myinputbox').val(txt.join(',')); 

Oder gibt es eine array.reduce Funktion in Javascript 1,8

var txt = $('#addedchargeamtid option').val() || []; 
$('#myinputbox').val(txt.reduce(
    function(prev, next, index, array){ 
     return prev + "," + next; 
    }, 
    '') 
); 
+0

thnx Ich habe einige Änderungen am Code vorgenommen, aber immer noch nicht funktioniert –

Verwandte Themen