2012-02-29 3 views
1

내가하려는 일은 다음의 제출 버튼을 클릭하는 것과 같은 결과를 얻는 것입니다. document.getElementsByName는 '이' 가 어떻게이 문제를 해결할 수있는 버튼 제출과 같은 결과 을 반환하지 않습니다처럼'this'라는 단어를 사용하지 않고 자바 스크립트에서 'this'객체 가져 오기

$('.NextButton').click(function() { 
    dex.forms.form_ajax_submit(document.getElementsByName('submit_http:'), 
     function(res) { 
      alert('posting failed'); 
     }, 
     function(res) { 
      alert('posting success'); 
     }); 
}); 

을하지만 보이는 :

<input id="submit_http:" class="add_submit" type="button" onclick="return dex.forms.form_ajax_submit(this,function(res) { alert('posting failed'); },function(res) { alert('posting success'); });" value="Next" name="submit_http:"> 

나는 그런 식으로 일을하려고했다 ?

+4

: 이미 추천 더 정확한 기능을

document.getElementsByName('submit_http:')[0] 

또는 사용

중 하나를 사용하여 배열의 첫 번째 요소에 액세스 '? –

+0

왜냐하면 "submit"버튼과 관련이 없기 때문에 "NextButton"에 대해 사용하지 않기 때문입니다. – DanR

+0

document.getElementsById로 확인합니까? – MCSI

답변

2

실제 실수는 복수형으로 표시된 요소 배열을 반환하기 때문에 document.getElementsByName 함수를 사용하는 실수였습니다. 필요한 것은 단일 요소입니다. 지구에 당신이`이를 사용하지 않는 이유는

document.getElementById('submit_http:') 
1

document.getElementsByName('submit_http:')은 해당 이름의 요소 배열을 반환합니다. 제출 버튼을 받으려면 document.getElementsByName('submit_http:')[0]을 사용하고 싶습니다.

+0

빠른 답변 주셔서 감사합니다. – DanR

0

일반적으로 우리는이를 위해 "자체"변수를 사용합니다. (가) 제출하기 전에 다음을 수행하십시오

var self = this; 

는 콜백에 "자기"를 사용

1

이미 입력에 대한 id이 있기 때문에 안토니 제분 용 곡물은, 귀하의 경우, 정확하지만, 당신이 할 수 document.getElementById('submit_http:') (단일 요소를 리턴 함).

관련 문제