2017-12-19 1 views
-1

Ich bin Zeilen dynamisch erstellen einer Tabelle auf Schaltfläche klicken event.Now Zum Beispiel, lassen Sie uns in Betracht ziehen, ich habe insgesamt 7 Zeilen jetzt dynamisch erstellt, wenn ich das Formular abschicken und es gab Irgendein Fehler in meinem Formularfeld, also wie würde ich wissen, wie viele Zeilen insgesamt erstellt wurden?wie zu überprüfen, wie viele Tabellen Zeilen bei Validierung fehlgeschlagen

dies ist, wie ich Zeilen dynamisch

counter=0; 
$('.add-row').click(function(){ 
    counter=counter+1; 
    $("#custom_fields").append("<tr><td><input type=text name='slab_name[]'/><span class='help-inline'>"+slab_name+"</span></td><td><input type='text' name='slab_start[]'/><span class='help-inline'>"+slab_start+"</span></td><td><input type='text' name='slab_end[]'/><span class='help-inline'>"+slab_end+"</span></td><td><input type='text' name='monthly_recurring_cost[]'/><span class='help-inline'>"+mrc+"</span></td><td><input type='text' name='data_in_mbs_slabs[]'/><span class='help-inline'>"+dim+"</span></td><td><input type='text' name='no_of_sms_slabs[]'/><span class='help-inline'>"+nos+"</span></td></tr>"); 
    alert(counter); 
}); 
Schaffung bin

hier der Zähler arbeitet aber auf Aktualisierung der Seite offensichtlich wäre es Null zeigen offensichtlich

+0

Senden Sie den Zähler mit Ihrer Seite senden an den Server. – VPK

+0

Warum wirkt sich die Anzahl der erstellten Zeilen auf die Validierung aus? –

+0

Sie können eine weitere versteckte Eingabe erstellen, die Informationen über Zeilen speichert und Sie können sie dann mit Ihrem Formular senden. –

Antwort

0

Wenn Sie nicht möchten, Wenn Sie den Zeilenzähler an den Server senden und ihn bei der Seitenaktualisierung abrufen, können Sie LocalStorage anstelle einer normalen JavaScript-Variablen wie unten verwenden:

Dies wird in der lokalen Speicherung gespeichert, auch wenn Sie Ihre Seite aktualisieren. Die Eigenschaften localStorage und sessionStorage ermöglichen das Speichern von Schlüssel/Wert-Paaren in einem Webbrowser. Dieser Wert ist auch in Ihrem Webbrowser verfügbar. So können Sie sogar darauf zugreifen, wenn Sie Ihre Seite aktualisieren.

0

mit jQuery? einfach:

$('#custom_fields tr').length 

"count" auf Refresh-Berechnung machen keinen Sinn, es sei denn Sie es geschrieben haben.

Für serverseitige Validierung Beispiel:

<?php 
     $count = $_POST['count'] ?: 0; 
    ?> 

    <form id="validator" method="POST"><input type='hidden' value=$count;> 
    <button>validate</button> 
    </form> 
<script> 
var count = <?=$count?>; 
    // ... rest of your code ... 
    // and additional JS: 
    $('#validator').on('submit',() => { 
     $('#validator input').val($('#custom_fields tr').length); 
    }) 
</script> 
+0

Das ist ein bisschen vage, was ist, wenn es mehr als einen Tisch auf einer Seite gibt? –

+0

Das Problem OP kann auftreten, während die gleiche Seite nach Formularvalidierungsfehler erneut angezeigt wird, so dass alle dynamisch erstellten 'tr's verschwunden sind. – VPK

+0

@ VPK, Validatoren können Client-Seite sein;) – 2oppin

0

Tabelle enthält tbody-Tag dann wie verwenden diese
$('#tableId tbody tr').length;

oder anderes verwenden wie dieses $('#tableId tr').length;

Verwandte Themen