jquery erhält alle Eingaben aus einem bestimmten Formular

Lesezeit: 4 Minuten

Gibt es Möglichkeiten, alle Eingaben aus einem bestimmten Formular zu füllen? sagen wir so etwas:

<form id="unique00">
  <input type="text" name="whatever" id="whatever" value="whatever" />
  <div>
    <input type="checkbox" name="whatever" id="whatever" value="whatever" />
  </div>
  <table><tr><td>
    <input type="hidden" name="whatever" id="whatever" value="whatever" />
    <input type="submit" value="qweqsac" />
  </td></tr></table>
</form>
<form id="unique01">
  <div>
    <input type="text" name="whatever" id="whatever" value="whatever" />
    <input type="checkbox" name="whatever" id="whatever" value="whatever" />
  </div>
  <table><tr><td>
    <input type="hidden" name="whatever" id="whatever" value="whatever" />
  </td></tr></table>
  <select>blah...</select>
  <input type="submit" value="qweqsac" />
</form>
etc forms... forms...

*Hinweis: Jedes Formular kann eine andere Menge an Eingaben und Typen und auch eine andere HTML-Struktur haben

Gibt es also eine Möglichkeit, die Eingabe von einer bestimmten Formular-ID zu füllen? z. B. wenn ich von einer bestimmten Formular-ID aus auf die Schaltfläche „Senden“ klicke, füllt jquery für mich alle Eingaben innerhalb dieser Formular-ID aus. derzeit mache ich folgendes:

$("form").submit(function(){ return validateForm($(this)) });
function validateForm(form){
var retVal = true;
var re;
$.each(form.serializeArray(), function(i, field) {
  var input = $('input[name="+field.name+"]');
  field.value = $.trim(field.value);
  switch(field.name){
    case "name" :
        and another cases...
      }
    })
 }

das war Arbeit, aber in diesem Fall bekomme ich nur field.name und field.value, und eigentlich möchte ich ein jquery-Objekt für jedes Eingabeelement, damit ich auf deren CSS, ID, Name und zugreifen kann sogar diese Eingabeelemente animieren

Gibt es dafür eine Möglichkeit?

Bitte lassen Sie es mich wissen und danke im Voraus! Und

Benutzer-Avatar
TJB

Um alle Eingaben in einem Formular zu durchlaufen, können Sie Folgendes tun:

$("form#formID :input").each(function(){
 var input = $(this); // This is the jquery object of the input, do what you will
});

Dies verwendet die jquery : Eingangsauswahl Um ALLE Arten von Eingaben zu erhalten, können Sie Folgendes tun, wenn Sie nur Text möchten:

$("form#formID input[type=text]")//...

usw.

  • Ich denke, :input funktioniert dafür, aber ansonsten könnten Sie Folgendes tun: $("form#formID input[type=text],form#formID select")

    – TJB

    27. November 2010 um 21:29 Uhr

  • Beachten Sie Tippfehler in Ihrer ersten Antwort oben. $(“from sollte $(“form sein

    – Mitsch

    22. Juli 2011 um 14:38 Uhr

  • $("form#formID :input").each Ausgänge input Typ, select Typ und sogar button Eingaben eingeben. Zumindest in meinem Code.

    – TARKUS

    11. Juli 2015 um 14:04 Uhr

  • @TARKUS input vs :input. $(“:input”) wählt alle jQuery-Formularelemente aus. $(“input”) wählt nur Input-Tags aus.

    – Johnathan Elmore

    18. Oktober 2016 um 16:29 Uhr

Benutzer-Avatar
Srinivasan.S

Der folgende Code hilft, die Details der Elemente aus dem spezifischen Formular mit der Formular-ID abzurufen,

$('#formId input, #formId select').each(
    function(index){  
        var input = $(this);
        alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val());
    }
);

Der folgende Code hilft, die Details der Elemente aus allen Formularen zu erhalten, die auf der Ladeseite platziert sind.

$('form input, form select').each(
    function(index){  
        var input = $(this);
        alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val());
    }
);

Der folgende Code hilft, die Details von Elementen zu erhalten, die auf der Ladeseite platziert sind, auch wenn das Element nicht innerhalb des Tags platziert ist.

$('input, select').each(
    function(index){  
        var input = $(this);
        alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val());
    }
);

HINWEIS: Wir fügen den mehr Element-Tag-Namen hinzu, den wir in der Objektliste benötigen, wie unten,

Example: to get name of attribute "textarea",

$('input, select, textarea').each(
    function(index){  
        var input = $(this);
        alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val());
    }
);

  • Ich erhalte mit diesem input.val() keinen Textwert. Können Sie mir dabei helfen?

    – Dhaval Thakor

    28. März 2018 um 8:56 Uhr

  • Mein Fehler. Entschuldigung, ich habe an der falschen Stelle nach der Ausgabe gesucht.

    – Dhaval Thakor

    28. März 2018 um 9:13 Uhr

Benutzer-Avatar
Markoj

Verwenden HTML Attribut “Elemente” des Formulars:

$.each($("form").elements, function(){ 
    console.log($(this));
    });

Jetzt ist es nicht mehr notwendig, Namen wie “input, textarea, select …” usw. anzugeben.

  • Puh! – viel zu viele Informationen. Versuchen Sie eine schnellere Möglichkeit, Formularinformationen anzuzeigen $(“form:input”).each(function(index) { console.log(index, this.type, this.id, this.name, this.value, this.placeholder ); } );

    – Jules Bartow

    20. November 2016 um 14:47 Uhr


$(document).on("submit","form",function(e){
        //e.preventDefault();
        $form = $(this);
        $i = 0;
        $("form input[required],form select[required]").each(function(){
            if ($(this).val().trim() == ''){
                $(this).css('border-color', 'red');
                $i++;
            }else{
                $(this).css('border-color', '');    
            }               
        })
        if($i != 0) e.preventDefault();
    });
    $(document).on("change","input[required]",function(e){
        if ($(this).val().trim() == '')
            $(this).css('border-color', 'red');
        else
            $(this).css('border-color', '');    
    });
    $(document).on("change","select[required]",function(e){
        if ($(this).val().trim() == '')
            $(this).css('border-color', 'red');
        else
            $(this).css('border-color', '');
    });
1146070cookie-checkjquery erhält alle Eingaben aus einem bestimmten Formular

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy