2016-08-14 7 views
0

Ich habe eine Tabelle, die die Benutzereingabe in Form eines Arrays erhält. Ich versuche zu überprüfen, ob die Werte existieren. Das Problem, auf das ich gestoßen bin, ist der Name der Eingabe ist name="detail[]" Wenn ich versuche, document.add_quote_form.detail.value == '' zu verwenden, bekomme ich Details, ist undefined. Ich habe die Tabelle unten.Eingabe Array-Wert von Javascript

<form id="add_quote_form" name="add_quote_form" class="form-horizontal"> 
<table style="width: 90%" id="myTable" class="centered-table table table-bordered"> 
<thead> 
    <tr> 
    <th>Item</th> 
    </tr> 
</thead> 
    <tbody> 
    <tr> 
    <td style="width: 60%"><input type="text" id="detail[]" name="detail[]"/></td> 
    </tr> 
    </tbody> 
    </table> 
</form> 
+0

Was ist der Zweck von 'id' einschließlich' [] '? – guest271314

+0

Verwenden Sie einfach Details anstelle von Details [] –

+0

Der Zweck der '[]' ist der Benutzer kann Zeilen zu der Tabelle hinzufügen, damit ich die Eingänge in einem Array erfassen. – bobthegoalie

Antwort

0

nicht sicher, was Zweck [] ist bei id von Element? Sie document.querySelector() verwenden können, Attribut beginnt mit Wahl

document.querySelector("[id^=detail]").value = ""; 
+0

Ich benutze '[]', weil der Benutzer Zeilen zur Tabelle hinzufügen kann. Also nehme ich die Eingaben in einem Array auf. – bobthegoalie

+0

@bobthegoalie Was meinen Sie mit "Capture die Eingänge in einem Array"? Wie verhält es sich damit, wenn man '[]' Zeichen in 'id' von' html' einfügt? – guest271314

0

ersten Verwendung Klasse nicht Id hier, wenn Sie eine Menge td-Tag mit dem gleichen Eingangsnamen

<form id="add_quote_form" name="add_quote_form" class="form-horizontal"> 
    <table style="width: 90%" id="myTable" class="centered-table table table-bordered"> 
    <thead> 
     <tr> 
     <th>Item</th> 
     </tr> 
    </thead> 
     <tbody> 
     <tr> 
     <td style="width: 60%"><input type="text" id="detail[]" name="detail[]"/></td> 
     </tr> 
     </tbody> 
     </table> 
    </form> 

    <script> 
    var details = document.getElementsByClassName('detail'), 
    details_values = [].map.call(details , function(row) { 
     // you can do what ever you need here if you need to check each value 
     return row.value; 
    }); 

alert(details_values); 

    </script> 

jedoch, wenn Sie Javascript Eingabe zu validieren mit es sollte nur für die Verwendung der Schnittstelle, weil es nicht sicher ist, auf Javascript 100% zu verlassen, sollten Sie auch eine serverseitige Validierung machen