2015-12-24 14 views
10

Ich habe in SO gesucht Ich fand so viele Beispiele, aber meins war etwas anders als alle anderen.So finden Sie das nächste Element mit jquery

1) zunächst habe ich eine Zeile, wenn der Benutzer klicken Sie speichern & nächste Taste wird es sagen Sie 3 Felder haben

2) fehlen, wenn der Benutzer auf die Schaltfläche Hinz klicken und sie gaben keinen Wert im Text Feld, dann er klicken Sie auf die Speichern und Weiter-Taste sollte es immer noch 3 Felder fehlen

3) wenn der Benutzer eines der Felder in der geklonten Zeile eingeben, dann er auf die Schaltfläche Speichern und Weiter klicken Validierung sollte mit meinem Code zuerst passieren Zwei Punkte funktionieren

aber das Problem ist, wenn der Benutzer ein paar Zeilen mehr klickt und er ein beliebiges geklontes Feld eingibt, wenn er sicher und nächste Taste klickt, galt die required_Field Klasse in allen anderen Feldern, aber es sollte nur für diese Zeile gelten :(

Wenn wir in der Lage sind, das nächste Element zu finden das Feldes, wo der Benutzertyp dann kann ich in der Lage required_Field Klasse zu jenem Elemente nur

ich habe versucht, wie unten

 function additionalvalidation() { 
      var myRow = $(".check").length; 

      //$(".cloned_field").css("border","1px solid green"); 
      $(".cloned_field").change(function() { 
       var myField = $(".cloned_field").val().length; 
      if (myField >= 0) { 
       $(".cloned_field").addClass("required_Field"); 
       debugger; 
       $(".cloned_field").prevAll('label').find('span.required-star').removeClass('text-error-red'); 
       //bind_validation(); 
      } else { 
       $(this).closest(".cloned_field").removeClass("errRed"); 
       $(".cloned_field").removeClass("text-error-red"); 
      } 
      bind_validation(); 
      return false; 
      }); 
     } 

Mit meinem aktuellen Code ich bin immer Fehler hinzuzufügen.

Uncaught Typeerror: kann Eigenschaft 'Länge' undefinierter

$(this).closest(".cloned_field").addClass("required_Field"); 

Ich habe versucht, diese auch

$(this).closest(".cloned-row1").addClass("required_Field"); 

Gibt es einen Vorschlag für diese Frage

Ich habe versucht, diese neuen lesen ->

$(this).closest(".cloned_field").css({"color": "red", "border": "2px solid red"}); 

die Farbe rot und rote Grenze nur für dieses Feld nicht für die Reihe :(

Fiddle link für die Referenz

+0

Bitte fügen Sie Ihre HTML – Mohan

+0

'this' in bereitgestellt Beispiel .. – Rayon

+0

' $ (this) .parents nach ($ Klon) auf 'window' bezieht ('educat_info..');' Funktioniert nicht, weil die ' educat_info' DIV ist kein Elternteil der Schaltfläche Mehr hinzufügen. Also wird der Klon niemals zum DOM hinzugefügt, und dann '$ (". Cloned_field "). Val(). Length 'scheitert, weil es kein' cloned_field' gibt und 'val()' '' undefined' zurückgibt. – Barmar

Antwort

3
anwandte

@mahadevan versuchen Sie diesen Code. Ich arbeite

 function additionalvalidation() { 
      var myRow = $(".check").length; 

      //$(".cloned_field").css("border","1px solid green"); 
      $(document).on("change",".cloned_field",function() { 
      var myField = $(this).val(); 
      var $clonedDiv = $(this).closest('.cloned_div'); 

      if (myField!='') {  
       $clonedDiv.find(".cloned_field").addClass("required_Field"); 
       $clonedDiv.find(".deg_date").addClass("required_Field"); 
       $clonedDiv.find(".trans_date").addClass("required_Field"); 
       $clonedDiv.find(".txt_degreName").addClass("required_Field"); 


       debugger; 
       $(".cloned_field").prevAll('label').find('span.required-star').removeClass('text-error-red'); 
       //bind_validation(); 
      } else { 
       $clonedDiv.find(".cloned_field").removeClass("errRed"); 
       $clonedDiv.find(".deg_date").removeClass("errRed"); 
       $clonedDiv.find(".trans_date").removeClass("errRed"); 
       $clonedDiv.find(".txt_degreName").removeClass("errRed"); 

       //$(".cloned_field").removeClass("text-error-red"); 
      } 
      bind_validation(); 
      return false; 
      }); 
     } 
0

JQuery nächsten vielleicht die Antwort für Sie

Description: Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector.

https://api.jquery.com/next/

+0

Arda Ich habe das versucht, aber es hat nicht funktioniert – Mahadevan

+0

mit diesem Code unter dieser war nur für das aktuelle Feld nicht für diese Reihe $ (this) .closet (". Geklonte_field"). Css ({"color": " rot "," border ":" 2px solid red "}); – Mahadevan

+0

Ich bin auf dem Weg nach Hause von der Arbeit. Wenn ich nach Hause komme, überprüfe ich dein Problem genauer. halte durch :) –

-1

Sie zeigen, dass die nächste Suche im Baum der Eltern am nächsten ist. Wenn Sie in Geschwistern suchen möchten, sollten Sie die Suche nach Geschwistern ausführen.

Verwandte Themen