Wie fügen Sie das Attribut name des input-Feldes dynamisch mit Javascript/Jquery
Ich brauche eine Hilfe.Ich muss hinzufügen Eingabefeld name-Attribut dynamisch mit Javascript/Jquery. Ich bin jedes mal erstellen neues Feld, indem Sie auf +
- Taste, und löschen Sie das gewünschte Feld, indem Sie auf -
- Taste.Ich bin zu erklären, mein code unten.
JS:
function createNew(evt){
$('#questionshowp1').append('<div class="form-group"><input name="questions1" id="questions1" class="form-control firstsec" placeholder="Text, Image URL, or LaTeX" value="" type="text"><div class="secondsec"><button type="button" class="btn btn-sm btn-success exp-add" style="line-height:12px;" onclick="createNew(this);"><i class="fa fa-plus" aria-hidden="true"></i></button><button type="button" class="btn btn-sm btn-danger exp-minus" style="line-height:12px;" onclick="deleteNew(this)"><i class="fa fa-minus" aria-hidden="true"></i></button></div></div>');
$(evt).css('display', 'none');
$(evt).siblings("button.btn-danger").css('display', 'block');
}
function deleteNew(evnt){
$(evnt).closest(".form-group").remove();
}
HTML:
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<div class="questionshowp" id="questionshowp1">
<div class="form-group">
<input name="questions0" id="questions0" class="form-control firstsec" placeholder="Text, Image URL, or LaTeX" value="" type="text">
<div class="secondsec">
<button type="button" class="btn btn-sm btn-success exp-add" style="line-height:12px;" onclick="createNew(this);"><i class="fa fa-plus" aria-hidden="true"></i></button>
<button type="button" class="btn btn-sm btn-danger exp-minus" style="line-height:12px;display:none;" onclick="deleteNew(this)"><i class="fa fa-minus" aria-hidden="true"></i></button>
</div>
</div>
</div>
Hier bin ich erstellen neues Feld mit +
- Taste und hier muss ich erhöhen Sie den name-Attributwert wie questions0,questions1,questions2....
diese.Angenommen, Benutzer löschen Feld dann auch diese Reihenfolge wird bleiben mit allen Feld-name Attribut-Wert.Bitte helfen Sie mir.
- Globale variable in js. So etwas wie
questionnumber=1;
und dann fügen Sie es zu strings'...question' + questionnumber + '" id=...'
- Lassen Sie mich verstehen.. Wenn Benutzer hinzufügen, 2 Fragen, das Ergebnis wird
question0, question
. Dann hat er die zweite entfernen und fügen Sie eine weitere. Ist das Ergebnis wohl zuquestion0, question2
? - angenommen, der Benutzer Hinzugefügt
3
Fragequestion0,question1,question2..
gelöscht und die mittlere (i.e-question1
), dann wird es wiederquestion0,question1
nach dem löschen. - Wenn der name nicht wirklich wichtig sind und die Sie gerade brauchen, um passieren Sie alle, die Sie nutzen könnten
name="questions[]"
. Aber das würde nicht funktionieren für id. - warum ich Tue dies, weil, wenn ich ein Formular Einreichen, die ich extrahieren, können diese einfach in der Reihe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick angehängte snippet.
JS:
HTML:
Zuerst, Ihre Zufahrt ist ziemlich schlecht. Es ist nicht eine gute Idee, um alles in eine lange Zeichenfolge, und legen Sie es irgendwo in Ihrem JS. Dies ist aber nicht Ihre Frage.
Erstellen Sie einfach eine neue variable in Ihrem Skript zum zählen.
Und dann erhöhen Sie die Anzahl in Ihrem
createNew
Funktion und den Wert überall Sie es brauchen in Ihrem element string.Das ist es.
Müssen Sie einfach
count
die Anzahl der Klicksund verwenden, die zählen in Ihrem Skript haben eindeutige Namen Attribute.
Erstellen Sie eine Globale variable idCount im Skript und in
createNew
Funktion erhöhen Sie dessen Wert.JS:
HTML: