Program Tip

.each () 집합의 마지막 요소

programtip 2020. 11. 26. 19:44
반응형

.each () 집합의 마지막 요소


간단한 양식 유효성 검사를 수행하는 문제가 있는데 유효성 검사 플러그인이 나를 위해 할 수없는 사용자 지정 작업이 필요합니다. 기본적으로 이름, 이메일 및 메시지 필드가 있으며 모두 필수이지만 이메일 만 실제로 확인되고 나머지는 비어 있지 않은지 확인하면됩니다. 내 현재 코드는 다음과 같습니다.

$("#contactMe form").submit(function() {
    var email = $('.requiredEmail').val();
    if(email != 0)  {
        if(isValidEmailAddress(email))  {
            $('.requiredText').each(function() {
                thisVal = $(this).val();
                var $this = $(this);
                if(thisVal != 0) {
                    console.log('Valid Field: '+thisVal);
                    if ($(this) == $(this).parent(':last')) {
                        console.log('Last field, submit form here');
                    }
                }
            });
        } else {
            console.log('Email Not Valid');
        }
    } 
    return false;
});

설명하기 위해 먼저 작동중인 isValidEmailAddress 함수를 통해 이메일 주소가 유효한지 확인하고 있습니다. 그런 다음 each (), 모든 requiredText 필드를 사용하고 비어 있지 않은지 확인합니다. 마지막 requiredText 필드에 도달하면 게시물 등을 사용하여 양식을 제출하고 싶습니다.

if ($(this) == $(this).parent(':last')) { 내가 가진 것은 분명히 부정확하지만 각 결과 세트에서 마지막인지 확인하고 참이면 조치를 수행하는 데 사용할 수있는 것이 무엇인지 모르겠습니다.

아무도 여기서 나를 도울 수 있습니까?

미리 감사드립니다.


each함수 indexelement. index세트의 길이를 확인 하면 좋습니다.

var set = $('.requiredText');
var length = set.length;
set.each(function(index, element) {
      thisVal = $(this).val();
      if(parseInt(thisVal) !== 0) {
          console.log('Valid Field: ' + thisVal);
          if (index === (length - 1)) {
              console.log('Last field, submit form here');
          }
      }
});

미래의 Google 직원을 위해 마지막 요소인지 확인하는 다른 접근 방식이 있습니다. OP 질문의 마지막 줄과 유사합니다.

이것은 인덱스 번호를 확인하는 것이 아니라 요소를 직접 비교합니다.

$yourset.each(function() {
    var $this = $(this);
    if($this[0] === $yourset.last()[0]) {
        //$this is the last one
    }
});

이 질문에 적용 되는 여기 에서 더 짧은 답변 :

var arr = $('.requiredText');
arr.each(function(index, item) {
   var is_last_item = (index == (arr.length - 1));
});

완전성을 위해.

참고 URL : https://stackoverflow.com/questions/4006822/last-element-in-each-set

반응형