2016-10-31 8 views
0

Ich versuche, die Werte aus einem Formular zu erhalten, das ich in HTML erstellt habe: Ich benutze Javascript, um die Werte aus dem Formular zu bekommen, ich habe mehrere Möglichkeiten ausprobiert die Werte, im Moment ist es dasWerte aus dem HTML-Formular abrufen

$(document).ready(function() { 
 
    $('#submit').click(function() { 
 
    var x = document.getElementById("input"); 
 
    var text = ""; 
 
    var i; 
 
    for (i = 0; i < x.length; i++) { 
 
     console.log(x.elements[i].value); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="input"> 
 
    First Name: <br/> 
 
    <input type="text" name="firstName"/><br/> 
 

 
    Last Name: <br/> 
 
    <select id="lastName" style="text-align: center;"> 
 
    </select><br/> 
 

 
    <p>Date of Birth:</p><br /> 
 

 
    Day: <br/> 
 
    <select id="dayDropDown" style="text-align: center;"> 
 
    </select><br/> 
 
    Month: <br/> 
 
    <select id="monthDropDown" style="text-align: center;"> 
 
    </select><br/> 
 
    Year: <br/> 
 
    <select id="yearDropDown" style="text-align: center;"> 
 
    </select><br/> 
 

 
    Country: <br/> 
 
    <input type="text" name="country"/><br/> 
 
</form> 
 
<br/> 
 
<button id="submit" type="button">Submit</button>

diese zur Ausgabe der Werte aus dem Formular zu meinem VS, das Ausgabefenster gemeint ist, aber ich habe nichts. irgendwelche Ideen?

+1

Verwendung jquery: var querystring = $ ('# input') seriell. ice(); – lordkain

+0

verwenden. \t var x = document.getElementsByTagName ("input") –

+0

'var Formdata = $ ('# input') serialisiert();' –

Antwort

2

Da Sie jQuery bereits zum Anhängen Ihres Ereignishandlers verwenden, können Sie damit auch alle Elemente im Formular mithilfe des Selektors :input auswählen. Von dort können Sie einfach durch sie Schleife alle mit each() und geben ihre Werte an die Konsole, wie folgt aus:

$(document).ready(function() { 
 
    $('#submit').click(function() { 
 
    $('form :input').each(function() { 
 
     console.log($(this).val()); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="input"> 
 
    First Name: <br/> 
 
    <input type="text" name="firstName"/><br/> 
 

 
    Last Name: <br/> 
 
    <select id="lastName" style="text-align: center;"> 
 
    </select><br/> 
 

 
    <p>Date of Birth:</p><br /> 
 

 
    Day: <br/> 
 
    <select id="dayDropDown" style="text-align: center;"> 
 
    </select><br/> 
 
    Month: <br/> 
 
    <select id="monthDropDown" style="text-align: center;"> 
 
    </select><br/> 
 
    Year: <br/> 
 
    <select id="yearDropDown" style="text-align: center;"> 
 
    </select><br/> 
 

 
    Country: <br/> 
 
    <input type="text" name="country"/><br/> 
 
</form> 
 
<br/> 
 
<button id="submit" type="button">Submit</button>

+0

Nicht sicher über die Downvoters, aber ich denke nicht, dass dies die ursprüngliche Frage beantwortet. Sein Code funktioniert (obwohl es kein guter javascript/jQuery-Code ist und mit jQuery viel besser geschrieben werden kann ...) – Dekel

+0

Guter Ansatz, aber ich nehme an, dass das OP auch die Werte der Auswahlfelder möchte, wenn sie es wären gefüllt. (+1 obwohl) – secelite

+0

@secelite wird dies bekommen. Es gibt einfach keine Optionen in seinem aktuellen HTML zum Abrufen –

0

getElementsByTagName Ihr Problem lösen.

Dies ist der Code als modificated:

$(document).ready(function() { 
     $('#submit').click(function() { 
      var x = document.getElementsByTagName("input"); 
      var text = ""; 
      var i; 
      for (i = 0; i < x.length; i++) { 
       console.log(x[i].value); 
      } 
     }); 
    }); 
+0

Es scheint seltsam zu sein, Vanille JS zu verwenden, wenn JQuery bereits benutzt wird, und das wird nicht funktionieren für die select Elemente. – DBS

+0

Ich habe Ihren Code implementiert und es hat nicht funktioniert, sorry. –

+0

dies nur für die Eingänge. Wenn Sie es auch für Selects ausführen wollen, sollten Sie dieses 'var y = document.getElementsByTagName (" select ")' hinzufügen und dann diese Arrays mit concat versehen. –

1

Sie können jQuery verwenden und die Daten mit einer Anweisung

var queryString = $('#input').serialize(); 

Sehen Sie diese live example für eine Demo bekommen.

+1

'.serializeArray' wäre wahrscheinlich näher an was OP will. – RobertAKARobin

0

Mit demselben Namen Id Name mit allen Eingaben übernehmen. Ihr Javascript arbeitet ...

$(document).ready(function() { 
 
     $('#submit').click(function() { 
 
      var x = document.getElementById("input"); 
 
      var text = ""; 
 
      var i; 
 
      for (i = 0; i < x.length; i++) { 
 
       console.log(x.elements[i].value); 
 
      } 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="input"> 
 

 
     First Name: <br/> 
 
     <input type="text" name="firstName" id="input"/><br/> 
 

 
     Last Name: <br/> 
 
     <select id="lastName" style="text-align: center;" id="input"> 
 
     </select><br/> 
 

 
     <p>Date of Birth:</p><br /> 
 

 
     Day: <br/> 
 
     <select id="dayDropDown" style="text-align: center;" id="input"> 
 
     </select><br/> 
 
     Month: <br/> 
 
     <select id="monthDropDown" style="text-align: center;" id="input" > 
 
     
 
    </select><br/> 
 
     Year: <br/> 
 
     <select id="yearDropDown" style="text-align: center;" id="input"> 
 
     </select><br/> 
 

 
     Country: <br/> 
 
     <input type="text" name="country" id="input"/><br/> 
 
    </form> 
 
    <br/> 
 
    <button id="submit" type="button">Submit</button>

-1
$(document).ready(function() { 
    $('#submit').click(function() { 
     $('form input, form select').each(function() { 
      console.log($(this).val()); 
     }); 
    }); 
}); 
Verwandte Themen