2012-02-29 71 views
1

我想要做的是獲得與點擊下面的提交按鈕相同的結果。在JavaScript中獲取'this'對象而不使用'this'這個詞

<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:"> 

我試圖做這樣的:

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

不過貌似document.getElementsByName沒有返回相同的結果 的提交按鈕「這個」 我怎樣才能解決這個問題?

+4

:使用

要麼訪問數組的第一個元素:

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

,或者使用已經推薦和更精確的功能'? – 2012-02-29 12:53:46

+0

,因爲我不能使用,因爲它不會涉及到「提交」按鈕,而是「NextButton」 – DanR 2012-02-29 12:54:47

+0

你用document.getElementsById檢查它嗎? – MCSI 2012-02-29 12:55:14

回答

2

你唯一犯的錯誤是使用函數document.getElementsByName,因爲它返回一個元素數組(如複數所示)。你需要的是一個單一的元素。究竟爲什麼你不希望使用`這個

document.getElementById('submit_http:') 
1

document.getElementsByName('submit_http:')將返回具有該名稱的元素數組。如果你想得到你的提交按鈕,你想使用document.getElementsByName('submit_http:')[0]

+0

感謝您的快速回答! – DanR 2012-02-29 12:56:21

0

一般來說,我們使用一個「自我」變量。提交之前,這樣做:

var self = this; 

然後用「自我」到你的回調

1

雖然安東尼格里斯特是正確的,你的情況,因爲你已經有一個輸入的id,你可以做document.getElementById('submit_http:') (它返回一個元素)。