2010-06-05 13 views
13

Wie erhalten Sie alle IDs von Eingabeelementen innerhalb eines Formulars in einem Array?Wie bekomme ich IDs aller Eingaben in das Formular?

+3

+1 Gute Frage. Für diejenigen, die sich geärgert haben: Hast du die gleiche herzliche Begrüßung erhalten, als du ein Neuankömmling von SO warst? –

+2

Warum wird diese Frage abgelehnt? –

+0

Ein möglicher Grund für downvotes ist, dass der Titel zu lang ist und die Frage zu kurz ist. Das ist normalerweise der Fall, wenn sie gleich sind. – Guffa

Antwort

11

Etwas nach dem Vorbild ...

<script src="../../Scripts/jquery-1.4.2.min.js"></script> 

<script type="text/javascript"> 

    $(document).ready(function() 
    { 
     // Get all the inputs into an array... 
     var $inputs = $('#myForm :input'); 

     // An array of just the ids... 
     var ids = {}; 

     $inputs.each(function (index) 
     { 
      // For debugging purposes... 
      alert(index + ': ' + $(this).attr('id')); 

      ids[$(this).attr('name')] = $(this).attr('id'); 
     }); 
    }); 


</script> 
+1

Vielen Dank ....... sehr viel – James

14
$ids = $('#myform input[id]').map(function() { 
    return this.id; 
}).get(); 
+5

+1 - 'map()' ist der Weg zu gehen obwohl, wenn es "Eingabe" -Elemente gibt, die keine ID haben (vielleicht ein Submit), haben Sie am Ende einen leeren Eintrag im Array. Vielleicht möchten Sie den Selektor auf: '$ ('# test input [id]')' oder zumindest einen Test wie: 'if (this.id) this.id;' – user113716

+0

Guter Vorschlag, patrick - der Antwort hinzugefügt. – Amber

+0

Vielen Dank ....... sehr viel – James

3

Sie Ihre Suche mit einem präziseren Wähler verengen: Formulareingabe und ein Attributselektor für die, die ein ID-mit

$(document).ready(function() { 
    $('form input[id]').each(function() { 
     formId.push(J(this).attr('id')); 
}); 
}); 
+0

Vielen Dank ....... sehr viel – James

Verwandte Themen