2 Stimmen

Iteration durch gleiche Formularelemente

Wenn ein Formular wiederholt dasselbe Tag enthält.

Wie man seinen Wert in Javascript erhält.

    <script>
     function validate()
      {
        //get all values of elmone
      }
     </script>

<form>
<input type="text" size="15" value="Hello World" name="elmOne">
<input type="text" size="15" value="next Hello World" name="elmOne">
 <input type="button" onclick="javascript:validate()" value="validate">
</form> 

Danke.

2voto

Jeffrey04 Punkte 5738

Es ist nicht üblich, zwei verschiedene Texteingabeelemente mit einem gemeinsamen Namen zu benennen. Aber zurück zur Frage: Sie können jederzeit document.getElementByName('elmOne'); verwenden, um eine Liste der passenden Eingaben zu erhalten, und diese dann in einer Schleife nach Werten durchsuchen

var input_list = document.getElementsByName('elmOne');

for(var i = 0; i < input_list.length; i++) {
    // either way should get you the value
    console.debug(input_list[i].value, input_list[i].getAttribute('value'));
}

können Sie hier nachlesen Seite für weitere Informationen zur Kompatibilität

1voto

farzad Punkte 8635

Können Sie die dokument.formulare Eigenschaft, um ein Array von Dokumentenformularen zu erhalten, beginnend mit Index 0 für das erste Formularelement, das im HTML-Code erscheint, und so weiter. Oder Sie können auf ein Formular zugreifen, das ein "Name"-Attribut hat, indem Sie den Namen als Array-Index verwenden:

var f = document.forms[0];

und wenn das Formular einen Namen wie "loginForm" hat, können Sie es so erreichen:

var f = document.forms['loginForm'];

Diese Eigenschaft ist ein Array, das die gleichen Indizierungseigenschaften hat wie document.forms. Sie können also auf jedes for-Element in der Reihenfolge seines Auftretens im HTML-Code zugreifen, indem Sie numerische Indizes verwenden, 0 für das erste Element, oder benannte Indizes verwenden, indem Sie das Namensattribut jedes Elements als Index angeben.

um auf das zweite Element des Formulars zuzugreifen, können Sie also verwenden:

var el = f.elements[1];

oder wenn das Element das Namensattribut "username" hat, können Sie es durch referenzieren:

var el = f.elements["username"];

Auf diese Weise können Sie auf jedes Element in jeder Form in Ihrem Dokument verweisen.

0voto

Artsiom Anisimau Punkte 1121

var elem = document.form.all.namedItem("elmOne") gibt ein Array der erforderlichen Elemente zurück. Dann durchlaufen Sie es einfach und erhalten die Werte, indem Sie elem.value

0voto

Kevin Crowell Punkte 9724
var items = document.getElementsByName("elmOne");
for (var i = 0; i < items.length; i++) {
   var item = items[i];
}

Dies wird jedoch zu einem unerwarteten Verhalten im IE führen. Für weitere Einzelheiten siehe diese Frage . Der Grundgedanke ist, dass sich die Microsoft-Implementierung dieser Funktion von den Implementierungen anderer Browser unterscheidet. Daher können Sie in verschiedenen Browsern widersprüchliche Ergebnisse erhalten.

Die Lösung besteht darin, einen anderen Weg zu finden, diese Elemente zu verknüpfen und damit die gewünschten Elemente zu erfassen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X