2015-12-24 17 views
10

Tôi đã tìm kiếm trong SO Tôi đã tìm thấy rất nhiều ví dụ nhưng tôi có chút khác biệt so với tất cả.Cách tìm phần tử gần nhất bằng cách sử dụng jquery

1) ban đầu tôi có một hàng nếu nhấp chuột sử dụng tiết kiệm & nút bên cạnh nó sẽ nói bạn có 3 lĩnh vực thiếu

2) nếu người dùng nhấp vào nút addmore và ông không gõ bất kỳ giá trị trong văn bản lĩnh vực sau đó ông nhấp vào nút lưu và tiếp theo nó vẫn nên nói 3 lĩnh vực mất tích

3) nếu người dùng gõ bất kỳ một lĩnh vực trong hàng nhân bản sau đó ông nhấp vào lưu và xác nhận nút tiếp theo sẽ xảy ra với mã của tôi đầu tiên hai điểm đang hoạt động

nhưng vấn đề là nếu người dùng nhấp vào một số hàng khác và anh ta gõ vào bất kỳ một trong những lĩnh vực nhân bản sau đó nếu anh ta nhấp vào nút an toàn và tiếp theo, lớp required_Field đã được áp dụng trong tất cả các trường khác nhưng nó chỉ áp dụng cho hàng đó: (

Nếu chúng tôi có thể tìm phần tử gần nhất các lĩnh vực nơi mà các loại người dùng sau đó tôi có thể thể thêm required_Field lớp để những yếu tố duy nhất

tôi đã cố gắng như dưới đây

 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; 
      }); 
     } 

với mã hiện tại của tôi tôi đang nhận được lỗi.

của router Lỗi Loại: Không thể đọc thuộc 'chiều dài' không xác định

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

Tôi cố gắng này cũng

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

Bất kỳ gợi ý cho câu hỏi này

Tôi cố gắng này mới một ->

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

màu đường viền màu đỏ và màu đỏ chỉ được áp dụng cho lĩnh vực đó không cho hàng :(

Fiddle link cho tài liệu tham khảo

+0

Vui lòng thêm HTML của bạn – Mohan

+0

'this' đề cập đến' window' trong ví dụ được cung cấp .. – Rayon

+0

'$ (this) .parents ('. Educat_info'). After ($ clone);' không hoạt động vì ' educat_info' DIV không phải là phụ huynh của nút Thêm Thêm. Vì vậy, bản sao không bao giờ được thêm vào DOM, và sau đó '$ (". Cloned_field "). Val(). Length' không thành công vì không có' cloned_field' và 'val()' trả về 'undefined'. – Barmar

Trả lời

3

@mahadevan thử mã này. Tôi đang làm việc

 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 tiếp theo có thể là câu trả lời cho bạn

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 Tôi đã thử điều đó nhưng nó không hoạt động – Mahadevan

+0

với mã dưới đây này chỉ hoạt động cho trường hiện tại không cho hàng đó $ (this) .closest (". Cloned_field"). Css ({"color": " màu đỏ "," đường viền ":" 2px đỏ đậm "}); – Mahadevan

+0

Tôi đang trên đường về nhà từ nơi làm việc. khi tôi về nhà, tôi sẽ kiểm tra vấn đề của bạn sâu hơn. treo trong đó :) –

-1

Bạn hiển thị tìm kiếm gần nhất trong cây bố mẹ và tìm gần nhất. Nếu bạn muốn tìm kiếm trong anh chị em bạn nên thực hiện tìm trên anh chị em.

Các vấn đề liên quan