Questo è il mio primo post su questo sito, quindi spero che mi piaccia. Sto cercando di creare un modulo HTML/PHP e utilizzare una piccola porzione di Javascript per aggiungere righe aggiuntive a una tabella quando si fa clic su un pulsante e incrementare l'ID per i due campi.Javascript Aggiungi riga alla tabella HTML e ID dell'incremento
Il pulsante funziona aggiungendo le righe ma non sembra che incrementa l'ID, basta usare lo stesso ID della riga precedente. Spero che qualcuno possa aiutare?
$(window).load(function(){
var table = $('#productanddates')[0];
var newIDSuffix = 2;
$(table).delegate('#button2', 'click', function() {
var thisRow = $(this).closest('tr')[0];
var cloned = $(thisRow).clone();
cloned.find('input, select').each(function() {
var id = $(this).attr('id');
id = id.substring(0, id.length - 1) + newIDSuffix;
$(this).attr('id', id);
});
cloned.insertAfter(thisRow).find('input:date').val('');
newIDSuffix++;
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="blue-bar ta-l">
<div class="container">
<h1>Submit Your Insurance Renewal Date(s)</h1>
</div>
</div>
<div class="grey-bar">
<div class="container">
<div class="rounded-box">
<div>
<label for="name">Name</label>
<input type="text" id="name" name="name" autocomplete="off" required />
</div>
<div>
<label for="name">Renewal Dates</label>
</div>
<table width="100%" border="0" cellspacing="0" cellpadding="5" id="productanddates" class="border">
<tr>
<td>
<select name="insurance_type1" id="insurance_type1">
<option></option>
<option>Car</option>
<option>Home</option>
<option>Van</option>
<option>Business</option>
<option>GAP</option>
<option>Travel</option>
</select>
</td>
<td>
<input type="date" name="renewal_date1" id="renewal_date1" />
</td>
<td>
<input type="button" name="button2" id="button2" value="+" />
</td>
</tr>
</table>
<div>
<label for="telephone_number">Contact Number</label>
<input type="tel" id="telephone_number" name="telephone_number" pattern="\d{11}" autocomplete="off" required />
</div>
<div>
<label for="email">Email Address</label>
<input type="email" id="email" name="email" autocomplete="off" required />
</div>
<div>
<input name="submit" type="submit" value="Submit" class="btn">
</div>
</div>
per HTML dinamico come questo è meglio imparare ad usare le classi e DOM attraversa invece di preoccuparsi di avere bisogno di identità a tutti. Mostra il codice che dipende dagli ID – charlietfl
Sembra funzionare in questo jsFiddle - http://jsfiddle.net/g7116c49/ cambiando '.find ('input: date')' a '.find ('input.date') 'e aggiungendo' class = "date" 'al proprio input di data. – Sean
Hai provato a mettere una dichiarazione di 'newIDSuffix' in JavaScript globale invece che nella funzione' $ (window) .load'? – yW0K5o