2012-04-06 7 views
0

ID가없고 클래스가없는 양식이 있습니다. 그 안에있는 모든 입력을 받아야합니다. 스크립트가 있지만 양식 안에 있는지 여부에 상관없이 모든 입력을받습니다.제출 된 양식의 모든 입력을 받으십시오.

당연히 클래스에 ID를 추가 할 수 있지만 양식에 ID를 추가하지 않고 원하는 것을 수행 할 수있는 방법이 있습니까?

내 경우에는 내 페이지의 모든 입력을 반복하지만, 현재 양식의 모든 입력을 반복 할 것인지를 어떻게 확인할 수 있습니까?

$('form').submit(function(e){ 
    e.preventDefault(); 

    $('input, textarea').each(function(){ 
     alert('a'); // Alerts on every input, not just inside this form... 
    }); 
}); 

바이올린 : http://jsfiddle.net/dsN43/

+0

브루브 -이게 어울리나요? 대답으로 설정하겠습니까? http://jsfiddle.net/qMS7P/31/, 건배! –

답변

3

사용자 컨텍스트 (두번째 파라미터)로서 this 전달할 수의 jQuery 기능은 현재 요소의 내부를 검색한다.

$('form').submit(function(e){ 
    e.preventDefault(); 

    $('input, textarea', this).each(function(){ 
     alert('a'); // Alerts on every input inside this form. 
    }); 
}); 
+0

매력처럼 작동합니다. 고마워요. – sed

+0

당신은 환영합니다 :) –

1
$('form').submit(function(e){ 
    e.preventDefault(); 

    $(this).find('input, textarea').each(function(){ 
     alert('a'); // Alerts on every input, just inside this form 
    }); 
}); 
+0

문맥 (Mateusz W와 같은)을 사용하는 것이 더 좋지만, 이것은 잘 작동합니다. –

0

당신은이 같은 jQuery를 find() 방법을 사용할 수 있습니다 :

$(document).ready(function(){ 
    $('form').submit(function(e){ 
     e.preventDefault(); 

     $(this).find('input, textarea').each(function(){ 
      alert(this.nodeName + ' ' + $(this).attr('name')); 
     }); 
    }); 
});​ 

jsFiddle example (그것은 당신이 바로 그 사람을 찾을 수 있는지 확인하기 위해 요소의 태그 이름/이름 속성을 인쇄 디버깅을위한 더 나은)

관련 문제