2016-06-02 10 views
1

Ich habe eine ziemlich einfache Form, die es Benutzern ermöglicht, einfache Kleinanzeigen zu posten. Es sieht wie folgt aus:Generieren von Formularfeldern mit jquery

<form action=""> 
    <fieldset> 
     <h3>Personal Informations</h3> 
     <input type="text" placeholder="Your Name"> 
     <input type="text" placeholder="Your Address"> 
    </fieldset> 

    <fieldset> 
     <h3>Car Informations</h3> 

     <input type="text" placeholder="Manufacturer"> 
     <input type="text" placeholder="Model">  
     <input type="text" placeholder="Year"> 

     <a href="#">Add More Ads</a> 

    </fieldset> 
</form> 

Ich mag würde der Besucher ermöglichen, um mehr Anzeigen dann schreiben Sie eine über die Taste/link „Mehr Anzeigen hinzufügen“ die gleichen 3 Felder wie viel mal erzeugen würden als Besucher Anzeigen benötigt.

Was wäre die einfachste Lösung, dies zu tun? Jede Hilfe/Anleitung wäre großartig! Danke!

P.S Auch wäre es toll, wenn der Benutzer auch die Felder entfernen kann, wenn er sich

+0

Wickeln Sie die Felder in einem div und fügen Sie den gleichen div jedes Mal mehr Anzeigen hinzufügen wird – Poria

+0

Gute Idee geklickt, aber was passiert, wenn der Benutzer das Formular aus und klicken Sie auf „Weitere Anzeigen hinzufügen füllt "? Würde das nicht die gleiche Form zweimal erscheinen lassen? – Vlidurno

+0

Ja, das erlaubt Benutzern, mehr Felder sowie mehr Daten hinzuzufügen. Verwenden Sie auch die Eingabe-Namen als Array – Poria

Antwort

0

brauchen tut Sie input s einstellen können in <div class="row"> dann erste row Klasse kopieren.

$("#addAdsFiels").click(function(){ 
 
    var clone = $(this).siblings(".row:first").clone(); 
 
    $(clone).find("input").val(""); 
 
    $(this).before(clone); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action=""> 
 
    <fieldset> 
 
     <h3>Personal Informations</h3> 
 
     <input type="text" placeholder="Your Name"> 
 
     <input type="text" placeholder="Your Address"> 
 
    </fieldset> 
 

 
    <fieldset> 
 
     <h3>Car Informations</h3> 
 
     <div class="row"> 
 
      <input type="text" placeholder="Manufacturer"> 
 
      <input type="text" placeholder="Model">  
 
      <input type="text" placeholder="Year"> 
 
     </div> 
 
     <a href="#" id="addAdsFiels">Add More Ads</a> 
 
    </fieldset> 
 
</form>

+0

Danke eine Million Kumpel! Wenn ich darf, 2 Fragen: D Ist es möglich, neue Dateien hinzuzufügen, aber sie leer zu machen? In diesem Fall, wenn der Benutzer das Formular füllt und auf "Hinzufügen" klickt, erhält er ein neues Formular, aber mit zuvor hinzugefügten Daten ... Ist es auch möglich, einen Remove-Button unter jedem Formular hinzuzufügen? Sorry für alle Fragen ... – Vlidurno

+0

@Vlidurno Siehe https://jsfiddle.net/at87Lafh/ – Mohammad

+0

Sicher, aber nur eine Sache. Ist es möglich, leere Felder zu kopieren, wenn der Benutzer auf "Hinzufügen" klickt. Derzeit, wenn der Benutzer etwas in die ersten Felder eingibt und auf "Hinzufügen" klickt, erhält er Felder mit dem gleichen Inhalt in ihnen – Vlidurno

1

bereits.

$('#addMOre').on('click',function(){ 
 
    var self = $('.apendable').first().clone().insertAfter(".apendable:last"); 
 
    $('.apendable:last input').val(''); 
 
    self.append('<button class="close-info">close</button>'); 
 
    $('.close-info').on('click', function(){ 
 
    $(this).parent().remove(); 
 
    }) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
     <form action=""> 
 
      <fieldset> 
 
       <h3>Personal Informations</h3> 
 
       <input type="text" placeholder="Your Name"> 
 
       <input type="text" placeholder="Your Address"> 
 
      </fieldset> 
 
     
 
      <fieldset id="info"> 
 
       <h3>Car Informations</h3> 
 
       <div class="apendable"> 
 
       <input type="text" placeholder="Manufacturer"> 
 
       <input type="text" placeholder="Model">  
 
       <input type="text" placeholder="Year"> 
 
       </div> 
 
       <a href="#" id="addMOre">Add More Ads</a> 
 
     
 
      </fieldset> 
 
     </form>

+0

Dieser funktioniert wie ein Zauber, aber wäre es möglich, einen "Entfernen" -Button hinzuzufügen, wenn der Benutzer seine Meinung ändert und Felder entfernen möchte, die er hinzugefügt hat? – Vlidurno

+0

Aktualisieren Sie Ihre Frage, ich werde mein Javascript aktualisieren Code in Kommentar wird nicht nett sein. –

+0

Fertig, geändert :) – Vlidurno

Verwandte Themen