2016-08-02 10 views
0

Ich versuche, 3 Texteingabefelder zusammen zu überwachen. Das Folgende scheint nicht zu funktionieren.Kontinuierlich überwachen 3 Texteingabefelder mit jquery

$(document).ready(function() {     
    $("input:text").each(function() { 
     $(this).change(function() { 
      checkinputs(this));        
     }); 
    }); 
}); 

Einige Einblicke bitte. Ich möchte in jedem Eingabefeld überprüfen, ob ALLE die Standards erfüllen, die durch checkinputs() erzwungen werden.

Mit anderen Worten, wenn jemand in eines der Felder schreibt, möchte ich das aktuelle Feld und die anderen Felder auch in Echtzeit überwachen. Das ist vielleicht nicht so trivial wie ich denke.

+0

definieren "nicht zu funktionieren scheint". – undefined

+0

es funktioniert nicht. Ich kann Änderungen nicht übernehmen – marc

+1

Wenn 'checkinputs' eine Funktion zurückgibt, die etwas tut, wird es nicht funktionieren – adeneo

Antwort

2

Versuchen Sie Ihren Code wie folgt vereinfacht:

$(document).on("change", "input:text", function (e) { 
    checkinputs(this); // 
}); 

function checkinputs(input) { 
    console.log(input.value) // <-- do something with the input 
} 

Demo:JSFiddle

Wenn das nicht funktioniert, dann Sie Ihr Problem wahrscheinlich in der checkinputs Funktion.

Hinweis 2: Sie können an das nächste Element binden, das bereits auf der Seite geladen ist - document wurde als Beispiel verwendet.


UPDATE:

Wenn Sie alle Eingaben auf Eingabeänderung zu überprüfen, so bleiben die Auslöser der gleichen jedoch die checkinginputs Funktion alle Eingaben zu übernehmen haben. Hier ist, wie Sie das tun:

$(document).on("change", "input:text", function (e) { 
    var $inputs = $("input:text"); 
    checkinputs($inputs); 
}); 

function checkinputs($inputs) { 
    $inputs.each(function() { 
     console.log(this.value) 
    }); 
} 

Demo:JSFiddle

+0

Ich habe das früher versucht, aber was ich wollte, war, dass alle 3 Eingänge immer auf keyup überwacht werden. Aber es stellt sich heraus, dass es nicht leicht ist, das zu tun. Nur das aktuelle Textfeld hat seinen Listener aktiviert. Ich werde die Änderung bei einem Aufruf verschachteln müssen, um auch die anderen beiden Felder zu überprüfen. – marc

+1

@asehgal Ich habe die Antwort und die Geige basierend auf Ihrem Kommentar aktualisiert. – technophobia

+1

ist es super einfach. Siehe das Update. Sie erfassen einfach die Liste der Eingaben, die Sie bei jeder Änderung lesen müssen. Wenn eine Änderung eintritt, lesen Sie die Werte aller Eingaben. Beachten Sie, wie diese Formulierung, wenn es keinen Code gibt, direkt in Arbeitscode übersetzt werden kann. –

Verwandte Themen