2012-02-29 13 views
1

私がやっていることは、この次の送信ボタンをクリックするのと同じ結果になります。'this'という単語を使わずにjavascriptで '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

を'? –

+0

"submit"ボタンではなく "NextButton"に関連しているので私は使用できません – DanR

+0

document.getElementsByIdでチェックしますか? – MCSI

答えて

2

実際の唯一の間違いは、複数の要素の配列を返すので、関数document.getElementsByNameを使用していました。あなたが必要とするものは、単一の要素です。

どちらか使用して配列の最初の要素にアクセス:

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

またはすでにお勧めし、より正確な機能を使用:地球上であなたは `これを使用したくないのはなぜ

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:') (単一の要素を返す)。

関連する問題