2010-05-23 3 views
28

제출 단추의 jQuery 개체를 특정 양식 (동일한 페이지에 여러 양식이 있음)으로 가져 오려고합니다.jQuery에서 특정 양식의 제출 단추를 찾는 방법

양식 요소 자체를 가져올 수있었습니다. 다음과 같이 보입니다 :

var curForm = curElement.parents("form"); 

현재 요소에는 컨텍스트 HTMLInputElement가 있습니다. 내가 시도한 몇 가지 기술은 폼의 제출있어서 요소를 얻을 수 있습니다 :

var curSubmit = curForm.find("input[type='submit']"); 
var curSubmit = $(curForm).find("input[type='submit']");  
var curSubmit = curForm.find(":submit"); 
var curSubmit = $(curForm).find(":submit");  
var curSubmit = $(curSubmit, "input[type='submit']"); 

결과는 항상 같은 (매우 이상한)입니다. 결과는 "curElement"와 같은 요소입니다.

그러면 제출 버튼을 어떻게 만듭니 까?

+0

그래야합니다. http://JSBin.com에 예제를 보여줄 수 있습니까? – SLaks

답변

51

다음 작업을해야합니다 :

var submit = curElement.closest('form').find(':submit'); 
+6

+1의 경우 : 제출하십시오! 속성 선택자보다 사용하기가 훨씬 쉽습니다. –

13

이 작동합니다 :

var curSubmit = $("input[type=submit]",curForm); 

편집 : 참고는

2

을 의미 할 수있다, 당신은 그것을 찾기 위해 다음 코드를 사용할 수 있습니다

$(curElement.closest('form').get(0).elements).filter(':submit') 
+1

나는 왜 당신이 투표에 실패했는지 모르겠다. 이것은 내가 찾고있는 대답이다. 고맙습니다! –

0

을 경우 당신이의 제출 '버튼을 찾으려면 양식을 제출 한 후 다음과 같은 유용함을 발견 할 수 있습니다 ... 여러 번의 클릭을 방지하기 위해 양식을 제출 한 후 제출 단추를 사용 불가능하게하는 데 사용합니다.

$("form").submit(function() { 
    if ($(this).valid()) { // in case you have some validation 
    $(this).find(":submit").prop('disabled', true); 
    $("*").css("cursor", "wait"); // in case you want to show a waiting cursor after submit 
    } 
}); 
2

이 나를 위해 작동합니다 는 현재 양식이 예에 대한

를 제출 한 의미

var curSubmit = $("input[type=submit]",this); 

. 제출 된 버튼의 이름과 제출 된 모든 입력을 얻으려면

$("form").on("submit", function(event) { 
    event.preventDefault(); 
    var data = $(this).serialize(); //all input variables 
    console.log(data); //print data in console 
    var submit = $("input[type=submit]",this).attr('name'); 
    alert(submit); // name of submit button 
}); 
+0

첫 번째 예에서는 .. 'this'대신 '$ (this)'가되어서는 안됩니까? – Pixel1002

+0

@ Pixel1002 $가 이것과 "input [type = submit]"주위에 있습니다. –

관련 문제