2017-07-22 1 views
0

Ich habe den folgenden Eingabebereich hinzugefügt:Text aus der Form Gruppe verschütten

('#item').after('<div class="form-group" onsubmit="return false"></div><form action="javascript:void(-1)"><label for="exampleInputEmail1"> What?</label><input type="text" class="form-control" id="InputSaleValue" placeholder="Enter value"><small id="emailHelp3" class="form-text text-muted">eg 10%</small><form onsubmit="return false"> </div>'); 

Nach Drücken der Eingabetaste, ich habe dann:

('#InputSaleValue').after('<div class="form-group" onsubmit="return false"></div><form action="javascript:void(-1)"><label for="exampleInputEmail1"> What?</label><input type="text" class="form-control" id="InputCommission" placeholder="Enter value"><small id="emailHelp3" class="form-text text-muted">eg 10%</small><form onsubmit="return false"> </div>'); 

Aber was passiert ist, ist, dass das „zB 10% "wird zweimal am Ende des zweiten Zusatzes hinzugefügt und nicht für jeden Zusatz separat.

+1

Können Sie bitte ein lauffähiges Beispiel mit der Snippet-Funktion zur Verfügung stellen? (Strg + M) – ideaboxer

+0

Hallo, Entschuldigung, das ist eine Art von was ich meine: https: //jsfiddle.net/n5f5m46m/ – Topographical

Antwort

0

Es passiert, weil Sie in Ihrer zweiten Codezeile die Vorlage nach #InputSaleValue hinzufügen, das ist nur das Eingabefeld & nicht die Bezeichnung, z. B. 10% enthalten. Dein Inhalt erscheint also direkt neben diesem Feld. Vielleicht möchten Sie die erste Zeile ändern:

$('#item').after('<div class="form-group" onsubmit="return false"></div><form action="javascript:void(-1)"><div id="saleField"><label for="exampleInputEmail1"> What?</label><input type="text" id="InputSaleValue" class="form-control" placeholder="Enter value"><small id="emailHelp3" class="form-text text-muted">eg 10%</small></div></form onsubmit="return false"> </div>'); 

und zweite Linie als

$('#saleField').after('<div class="form-group" onsubmit="return false"></div><form action="javascript:void(-1)"><label for="exampleInputEmail1"> What?</label><input type="text" class="form-control" id="InputCommission" placeholder="Enter value"><small id="emailHelp3" class="form-text text-muted">eg 10%</small><form onsubmit="return false"> </div>'); 

In erster Linie habe ich gerade das Feld einschließlich Etikett eingeschlossen, zB 10 innerhalb div mit id als saleField. Und in der zweiten Linie habe ich nur den Auswähler gemacht. Hier Link für die Arbeit Plunker: https://plnkr.co/edit/noxcWTmAaLwtYv8vx2CO?p=preview

+0

'onsubmit' ist ein FORM-Attribut, so dass Sie es nicht in DIV-Tag verwenden können. – Rashid

+0

Einverstanden, aber ich erstelle nur eine neue Beispielcode. Und was er vermisst. Es gibt noch andere falsche Dinge, wie das Formular in Form zu haben, stattdessen müssen Felder in ein einzelnes Formular eingefügt werden, kein Formular-End-Tag, usw. Dies muss nur ein kleiner Teil des vollständigen Codes sein. – Shantanu

+0

Vielen Dank! Das war es :) Und half mir, HTML ein bisschen besser zu verstehen. – Topographical

0

Try this:

$(function(){ 
 
$('#item').after('<form action="javascript:void(-1)" class="form-group" id="formArea" onsubmit="return false"><div class="form-group"><label for="inputSaleValue"> What?</label><input type="text" class="form-control" id="inputSaleValue" placeholder="Enter value"><small class="form-text text-muted">eg 10%</small></div></form>'); 
 

 
$('#inputSaleValue').on('keydown',function(e){ 
 
\t if ((e.which == 13 || e.keyCode == 13) && $(this).val() != '') { 
 
\t \t e.preventDefault(); 
 
\t \t $('#formArea').append('<div class="form-group"><label for="inputCommission"> What?</label><input type="text" class="form-control" id="InputCommission" placeholder="Enter value"><small class="form-text text-muted">eg 10%</small></div>'); 
 
\t } 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
 

 
<div id="item"></div>

Verwandte Themen