2012-09-07 3 views
3

다음 코드가 있습니다. 여기동적으로 생성 된 요소에서 jQuery.each() 실행

$('#btnSave').click(function (e) { 
    $("input:text").each(function (index, value) { 
     var el = $(this); 
     if (el.val().length == 0) { el.css('border', '1px solid red') } 
     return false; 
    }); 
}); 

, 모든 입력 텍스트 요소가 동적으로 비어인지 아닌지 내가

이 어떻게 가서 .each().on()을 사용합니까 .. 확인할 수 없다 따라서 만들어? 나는 행운을 뺏기고 .. 미리 감사드립니다 ...

+0

버튼을 클릭하기 전에 요소가 작성되는 한 해당 코드가 작동해야합니다. '.on()'은 이벤트 연결에 사용됩니다. –

+0

정상적으로 작동하는 것 같습니다. 어떤 문제가 있습니까? – BZink

+2

각 함수가 호출 할 때마다 왜 false를 반환합니까? – Rikki

답변

4

코드는 꽤 괜찮지 만 return false;을 제거하십시오. 첫 번째 입력에 도달하면 .each() 루프가 중지됩니다.

jsFiddle example

1

그것은 문제가되지 않습니다 때까지 요소가이 페이지를 클릭하면 페이지에 있지 않는 한 .. 또한 당신이 거짓 수익을 반환하기 때문에; 필드가 비어있을 때 첫 번째 텍스트 상자는 ... .. 기타 아웃 경우에도 빈 남아있을 것입니다 경계 ..

​$(function() { 
    $('#btn1').on('click' , function() { 
     var inp = ''; 
     for(var i=1;i< 6;i++){ 
      inp += '<input type="text" id="txt' + i + '"/>' 
     } 
     $('.textboxes').append(inp); 

     var isError = false; 
     $("input:text").each(function (index, value) { 
      var el = $(this); 
      if (el.val() == '') { 
       el.addClass('error'); 
       isError = true; 
      } 
     }); 

      if(isError){return false;}  
    });  

});​ 

는 또한이 동작하는 예제를 확인하십시오 주어집니다 FIDDLE

관련 문제