Ich habe den folgenden Code, der das Hinzufügen und Entfernen von Auswahlfeldern dynamisch erlaubt:Grenze dynamische Formularfelder basierend auf Datenelement
Hier ist der HTML:
<div class="multi-field-wrapper">
<div class="multi-fields">
<div class="multi-field">
<select class="input-normal selection"name="options1[]" data-limit="2">
<option value="">None</option>
<option value="option1">Option 1</option>
</select>
<button type="button" class="remove-field">X</button>
</div></div>
<button type="button" class="add-field">Add</button>
</div>
<div class="multi-field-wrapper">
<div class="multi-fields">
<div class="multi-field">
<select class="input-normal selection"name="options2[]" data-limit="3">
<option value="">None</option>
<option value="option1">Option 1</option>
</select>
<button type="button" class="remove-field">X</button>
</div></div>
<button type="button" class="add-field">Add</button>
</div>
Hier ist die JS:
$('.multi-field-wrapper').each(function() {
var $wrapper = $('.multi-fields', this);
$(".add-field", $(this)).click(function(e) {
$('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
});
$('.multi-field .remove-field', $wrapper).click(function() {
if ($('.multi-field', $wrapper).length > 1)
$(this).parent('.multi-field').remove();
});
});
Mit was ich gekämpft habe, ist die Möglichkeit, die Anzahl der Auswahlfelder zu begrenzen, die hinzugefügt werden können. Ich fügte data-limit="2"
in Versuchen hinzu, einige JS zu schreiben, die auf den Datenwert verweisen, und setzt das Limit basierend auf dem Wert fest.
Irgendwelche Ideen, wo ich anfangen soll?
habe ich versucht, die folgenden, die ich weiß nicht, warum es nicht funktioniert:
var article = document.getElementByClass('multi-fields');
var len = $(".multi-field-wrapper").find(".multi-fields").length;
if(len == article.dataset.limit){
$('#add-field').hide();
}
});
});
danke und ich werde ein bisschen herumspielen .... wie ändert sich das, wenn es mehr th gibt ein one select Felder wie options1 [] und options2 [] – tmgolf
der aktuelle Code funktioniert für alle Selects mit '.selection' Klasse, wenn Sie also unterschiedliche Limits für jedes select haben wollen, filtern Sie einfach nach Name Tag, oder fügen Sie eine spezifische ID für jedes hinzu von ihnen. aber für dieses Verhalten müssen Sie auch mit Add/Remove-Funktionen herumspielen. – moped
noob Frage, wo müsste ich/wie würde ich für Name Tag – tmgolf