Başlıkta da belirttiğim gibi, jQuery, bir damla olarak seçilen değere göre jQuery ek bir dizi alan kümesi eklemektir. aşağı kutu. Örneğin, sayfa yüklendiğinde, açılır menünün varsayılan değeri 1'dir ve varsayılan alan kümesi görüntülenir. Şimdi, kullanıcı bu açılır menüden farklı bir değer seçerse, klonlama yoluyla alan takımlarının sayısı buna göre ayarlanmalıdır (sanırım bu en iyi çözüm olacaktır). İşte ben bugüne kadar ne var:Bir açılır kutu değeri temel alınarak form alanlarını (veya alanları) dinamik olarak eklemek için jQuery'yi kullanma
Açılır kutu kodu ...
<select id="itemCount" name="itemCount">
<option value="1">1 item</option>
<option value="2">2 items</option>
<option value="3">3 items</option>
<option value="4">4 items</option>
<option value="5">5 items</option>
<option value="6">6 items</option>
</select>
... jQuery değişiklik dinleyici ...
$(document).ready(function() {
$("#itemCount").change(function(){
var itemCountVal = jQuery(this).val();
$("#item_dup_1").fieldsManage(itemCountVal);
});
});
... ve fonksiyon kendisi
jQuery.fn.fieldsManage = function (number) {
var clone,
objTemplate = source.clone(true),
source = jQuery(this),
maxClones = number - 1,
clones = [];
if (clones.length < maxClones) {
while (clones.length < maxClones) {
clone = objTemplate.clone(true).insertAfter(clones[clones.length - 1] || source);
clones.push(clone);
}
}
if (clones.length > maxClones) {
// Fieldsets removal function goes here.
}
}
nesne olma c: (aslında Neye ihtiyacım için iyi bir başlangıç noktası olduğunu düşündüm bir jQuery eklentisi dayanmaktadır) Yanlız <fieldset id="item_dup_1"><input><input><input></fieldset>
gibi bir şeydir. Bunun için de tam kodu göstermenin gerekli olmadığını düşünüyorum.
Bu, ilk değişiklik için bir çekicilik gibi çalışır, ancak kullanıcı değeri tekrar değiştirirse, işler yanlış gittiğinde ve doğru sayıda alan kümesini göstermek yerine, daha fazlasını gösterir. Çizelgelerin zaten eklenmiş olduğu gerçeğini göz ardı ederek, sıfırdan başlayarak gerekli olan alan adedinin sayısını hesaplıyor gibi görünüyor ve bu benim sorunumun gerçekte ne olduğu. Aynı zamanda (sadece soruyu açık ve mümkün olduğunca kısa tutmak için burada gösterilmemiştir), klonlanmış alan kümesine yeni kimlikleri atayan ve kimlikleri aksatmadan çalışan bir işleve sahibim.
Yanlış bir şey yaptığım konusunda ikna oldum, ama iki gün boyunca kafamı bir duvara çarptırarak, bunun ne şansı olduğunu anlamaya çalışıyorum, herhangi bir yardım, takdir edilenden daha fazla olacaktır !
Şimdiden teşekkürler!
Parlak, çekicilik gibi çalışır! Bu aklımda olan şeydi ama yol boyunca sıkışmıştı. Teşekkür ederim, minnettarım. –
Belki bu ortak bir bilgidir, ancak alan sayımını değiştirmeden önce klonlanan alan kümesinin giriş alanlarına veri girilmişse, girilen verilerin de klonlanacağını buldum. Her bir (function() {jQuery (this) .val ("")}); klon oluşturulduktan sonra çalışmak için temiz bir klon verecektir. Umarım bu birilerini birkaç dakika doldurur. –
Peki bu, daha fazla veya daha az bilinen bir bilgidir ve ayrıca 'clone'un çalışması gereken yoldur. JQuery 'clone' yöntemi dahili olarak normal DOM metodunu kullanır cloneNode (true)'. Nasıl davrandığına dair bir açıklama için buraya bakın http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-3A0ED0A4 – jitter