jQuery는 부모 양식 찾기


219

이 HTML이 있습니다

<ul>
    <li><form action="#" name="formName"></li>
    <li><input type="text" name="someName" /></li>
    <li><input type="text" name="someOtherName" /></li>
    <li><input type="submit" name="submitButton" value="send"></li>
    <li></form></li>
</ul>

input[name="submitButton"]일부인 양식을 어떻게 선택할 수 있습니까? (제출 버튼을 클릭하면 양식을 선택하고 그 안에 일부 필드를 추가하고 싶습니다)

답변:


485

closest가장 가까운 매칭 부모 요소를 선택하는을 사용 하는 것이 좋습니다 .

$('input[name="submitButton"]').closest("form");

이름으로 필터링하는 대신 다음과 같이하십시오.

$('input[type=submit]').closest("form");

2
인덱스별로 가져 오기를 추가해야합니까? '$ ( "input [type = submit]"). closest ( "form");' 폼의 배열을 반환합니다.
sergzach

위와 같은 방법으로 위의 방법을 사용하려고합니다 : $ ( ". each img"). click (function () {$ (this) .closest ( "form"). show ();}); 그러나 나는 그것을 작동시키지 못하는 것 같습니다. : /
Alisso 2016 년

2
peterjwest 답변이 이것보다 낫습니다.
gagarine

HTML5에는 새로운 'form'속성이있어 부모 폼 외부에 요소를 가질 수 있습니다. 먼저 확인해야합니다.
mcintyre321

56

모든 입력에 존재하는 양식 참조를 사용할 수 있습니다 .closest()(Chrome 및 IE8에서는 5-10 배 빠름). IE6 & 7에서도 작동합니다.

var input = $('input[type=submit]');
var form = input.length > 0 ? $(input[0].form) : $();

2
IE8을 언급했습니다. 버전 6, 7, 9에서도 작동합니까?
Sonny

1
@peterjwest가 언급했듯이 훨씬 낫고 빠릅니다. Re IE6 입력 요소의 .form이 IE4에 있다고 생각합니다. 불행히도 netscape dev 페이지가 사라졌습니다 ... 모질라를 확인하는 사람은 누구입니까?
Maciej Łopaciński

이 훨씬 안전한 방법보다는 사용하고 closest(): 입력이 자신의 양식을 할당 할 수 있습니다 때문에 codepen.io/anon/pen/vNqEyg
Möhre

코드를 짧게 유지하기 위해 표기법을 사용하는 경우이 속기를 사용했을 수도 있지만이 예에서는 표시하려는 실제 코드 (특히 속기에 익숙하지 않은 사람들에게만 해당)에서만 산만합니다. 정규 if ()를 사용하는 것이 좋습니다.
AeonOfTime

그 솔루션에 너무 많은 혼란이 있다고 말하고 싶습니다. 이걸로 가면 (아래의 해결책-예 : 이것은 광고입니다 :) : stackoverflow.com/a/18921404/261332 , 그런 합병증이 필요하지 않습니다. 그렇지 않으면 아무것도하지 마십시오.
userfuser

17

나에게 이것은 가장 간단하고 빠른 것처럼 보입니다.

$('form input[type=submit]').click(function() { // attach the listener to your button
   var yourWantedObjectIsHere = $(this.form);   // use the native JS object with `this`
});

2
나를 위해, 사용하는 $(this.form)것이 가장 좋은 해결책입니다.
jap1968


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.