2016-09-19 4 views
0

Ich versuche, Eingabefeld mit dem Wert der ausgewählten Option zu füllen, beide werden dynamisch geladen. Ich kann den ausgewählten Optionswert laden und kann ihn aktualisieren, wenn die Option geändert wurde. aber wenn es 10 Eingabefelder und 10 Auswahl-Option-Tags gibt, wähle ich eine Option aus 10 Tags, denn alle 10 Eingabefelder zeigen denselben Wert. Jedes Eingabefeld hat 10 Optionen. Ich muss den Wert individuell ändern.Wie dynamisches Eingabefeld mit dynamischer Auswahloption in jquery gefüllt wird

hier ist eine Funktion von jquery,

$("#myselect").change(function() { 
    $("select option:selected").each(function() { 
     $('.returnValue').val($(this).text()); 
    }); 
}); 

Ich möchte einzelne Produktmenge in Eingabefeld einfügen.

Ich kämpfe für zwei Tage bitte helfen.

<select id="myselect"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
</select> 

<input class="returnValue" type="text" value=""> 
+1

Ihre Wähler sagt, dass alle Eingänge mit der 'returnValue' Klasse zugewiesen bekommen, so deshalb, die letzte Iteration Ihrer inneren Schleife alle Eingänge zum letzten Wert von' $ gesetzt würde (this) .text() ' – Fallenreaper

+0

Sie möchten die Summe aller ausgewählten Produkte aus allen Auswahlboxen auswählen? Für z. von wählen - 1 ausgewählt '3' und von wählen - 2 ausgewählt '4' dann Eingabefeld wird Wert 7 haben und so weiter ... –

Antwort

0

Sie Ihr Problem auf unterschiedliche Weise lösen können:

Wenn die Auswahl- und Eingabefelder nacheinander sind, können Sie verwenden:

$(this).next('.returnValue').val($(this).val()); 

Ein anderer Ansatz kann wählt ein neues Attribut wie die Grundlage für jede über das Hinzufügen von:

input-field="newlass1" 

Und so fügen Sie eine neue Klasse mit dem entsprechenden Eingabefeld in eine Weise, das Auswahl- und Eingabefeld zu verknüpfen.

In diesem Fall können Sie es tun:

$('input.' + $(this).attr('input-field')).val($(this).val()); 

Das Snippet:

$("[id^=myselect]").change(function() { 
 
    
 
    
 
    //$(this).next('.returnValue').val($(this).val()); 
 
    
 
    
 
    $('input.' + $(this).attr('input-field')).val($(this).val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 

 
<select id="myselect1" input-field="newlass1"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 
<input class="returnValue newlass1" type="text" value=""><br> 
 
<select id="myselect2" input-field="newlass2"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 
<input class="returnValue newlass2" type="text" value=""><br> 
 
<select id="myselect3" input-field="newlass3"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 
<input class="returnValue newlass3" type="text" value=""><br> 
 
<select id="myselect4" input-field="newlass4"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 
<input class="returnValue newlass4" type="text" value="">

+0

Vielen Dank für Hilfe. Ich benutze Produkt-ID aus der Datenbank statt fest codiert 1, 2, 3, 4, Real Magie ist jQuery Nochmals vielen Dank. –

+0

@MirzaAdilAliBaig Vielen, vielen Dank für Sie. Ich freue mich, dich froh zu sehen. – gaetanoM

0

Ihr Problem ist für alle Eingabefelder die gleiche Klasse verwenden, müssen Sie für jedes Eingabefeld ein plunker

hier ist eine andere id setzen

+1

ich don, t brauche hart codiert ich weiß, dass dies danke –

2

Verwenden $(this).parent().next('.returnValue').val($(this).text()); Wert auf das nächste Eingabefeld zu setzen.

$(".myselect").change(function() { 
 
    
 
    $("select option:selected").each(function() { 
 
     
 
     $(this).parent().next('.returnValue').val($(this).text()); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="myselect"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 

 
<input class="returnValue" type="text" value=""> 
 

 
<select class="myselect"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 

 
<input class="returnValue" type="text" value=""> 
 
<select class="myselect"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    <option value="4">4</option> 
 
</select> 
 

 
<input class="returnValue" type="text" value="">

+0

Zunächst sollte ID in DOM eindeutig sein. Aus diesem Grund wird der Wert in der Eingabedatei nur dann gefüllt, wenn die Änderung zuerst ausgewählt wird. –

+0

@RahulPatel richtig, ich weiß. Ich kopiere einfach das Gleiche und vergaß das, sicher. Ich werde es bearbeiten, um Klasse zu integrieren. –

+0

Das ist jetzt cool. –

Verwandte Themen