2014-11-12 4 views
2

특정 클래스가있는 첫 번째 입력 요소의 상위 폼 요소와 통신하려고합니다. 주어진 페이지에 적어도 2 개의 양식이있을 수 있습니다. 내 헤더의 로그인 폼이며,이 경우에는 내 페이지 본문의 양식입니다. 쉬운 것입니다 부모 폼을 받고, 내가 생각특정 클래스의 첫 번째 입력에서 상위 폼 요소 가져 오기

$('.my-select:first'); 

: :이 같은 클래스 이름을 가진 첫 번째 요소를 찾을 수 있어요

$('.my-select:first').closest('form'); 

을하지만, 그렇지 않습니다 그럴 수 밖에 없다. 내가 할이 때 반드시 내가 올바른 형식으로 이야기하고있다 :

$('.my-select:first').closest('form').attr('id'); 

을 내가 다시 정의되지 않은 얻고있다.

'closest()'가 DOM을 위로 이동하므로 안전하게 될 것이라고 생각했습니다. 나는 내가 올바른 선택자를 찾지 못했을 것이라고 생각한다. 내가 궁극적으로 "내-선택"의 클래스 이름을 하나 개 이상 선택 요소가됩니다

HTML

<form id="myform"> 
<fieldset> 
<div> 
<div> 
<label> 
<select class="my-select"> 
    .... 

: 여기처럼 내 마크 업이 모습입니다. 다른 선택 입력을 동적으로 추가하는 버튼이 있습니다. 그래서 가장 가까운 양식 요소를 찾아야합니다.

감사합니다.

+0

귀하의 코드가 정확하지만 형태는 반환 할 ID가 없습니다 :

JSFiddle 함께 재생합니다. –

+0

HTML에 따르면 양식에 id 특성이 없음 – Huangism

+0

모든 태그가 올바르게 닫혔는지 확인하기 위해 HTML의 유효성을 검사 할 수 있습니까? – PeterKA

답변

3

코드는 정확하지만 코드를 테스트하려면

<form id="?????"> <==== 

를보고 양식에는 ID 대신 길이가 사용하는 것입니다 없습니다 :

alert($('.my-select:first').closest('form').length); 

1를 표시해야한다는. http://jsfiddle.net/TrueBlueAussie/rz1ye80j/

+0

좋은 캐치 - 그것을보고 즉시 "아무것도 잘못된 것"이라고 생각했습니다. – docodemore

+0

나는 그것을 추가해야합니다 - 그것에 ID/클래스/조치 등이 있습니다. 나는 모든 사람들이 일을 단순하게 유지하려고 노력했습니다. 나는 이것을 시도 할 것이다. 바이올린에 감사드립니다. – Damon

관련 문제