2013-02-27 18 views
18

Ich möchte tabindex allen Formularelementen hinzufügen. Das Formular ist dynamisch und ich kann es nicht zum HTML hinzufügen. Ich möchte es als eine Funktion ausführen. Wenn mehrere Radiobuttons mit demselben Namen vorhanden sind, muss jeder einen eigenen tabindex-Wert haben. Die meisten Formularelemente auf der Seite beginnen als INPUT, außer SELECT. Wie kann ich das erklären?Tabindex dynamisch hinzufügen

Ich denke, ich muss eine Schleife ausführen und Attribut hinzufügen, nicht wahr?

var n = 1; 

$('input, select').each(function() {    
    $(this).attr('tabindex', n++); 
}); 

Antwort

38

seltsame Frage, aber ja, das ist die Grundidee:

$(":input").each(function (i) { $(this).attr('tabindex', i + 1); }); 

Dies verwendet :input alles einschließlich Schaltflächen und Textbereiche zu erhalten.

+1

Warum ist es seltsam? Einige Browser haben Probleme beim Durchblättern von Radiobuttons derselben Gruppe ... Danke. – santa

+0

Es ist seltsam, weil Sie sicher Registerindizes bekommen, aber nicht in einer garantierten Reihenfolge. Sie könnten also feststellen, dass Sie die Radiobuttons zufällig durchblättern. – Brandon

+0

Wird es nicht meine HTML-Struktur gehen? Ich habe kein schickes Layout. – santa