2011-08-16 7 views
-1

私はこのことを持っています.JavaScriptで書かれたメソッドに2つの値を渡す必要があり、ボタンのonClientClickイベントを処理しています。JavaScriptのイベント処理メソッドに値を渡す方法

編集

私はtelerikからradbuttonを使用していますし、何のbutton.add.attributesはありません!

編集2 私が渡す必要がある値は、サーバー側の値です。

+0

何を試しましたか?何がうまくいかなかったのですか?コードを記入して、どこに問題があるか教えてください。 – Oded

答えて

1

あなたはこの代わりのような何かができる:

(function(){ 
var parameter1, parameter2; 
button.onclick = function() { //you have access to both variables parameter1,parameter2 
           //and doesn't interfere with the event object passed 
          }; 
})(); 

または

function returnEventHandler(param1,param2) 
{ 
return function(){ 
// your event handler code, play around with parameters, example 
    return param1 + param2; 
}; 
} 

button.onclick = returnEventHandler("one","two"); 
+0

両方がjavascriptで正しくありますか? – Lisa

+0

@Shazaはい、彼らはクロージャを利用しています。内部関数が定義された関数のスコープオブジェクトにアクセスできるようにする機能です。かなり、コアのJavaScriptテクニックです。 – Eliu

1

あなたはまっすぐアップこのようにそれを行うことができます。

<script type="text/javascript"> 
function foo(parm1, parm2) 
{ 
    // Click event logic goes in here 
} 
</script> 

<asp:Button runat="server" id="btn1" text="Do Foo" onclientClick="foo(23,'foooing')" /> 

編集

ASPボタンオブジェクトの 'onClientClick'メソッドと 'onClick'メソッドは、あらゆる点で異なっていることに言及する価値があります。

クリックすると2つの別々の機能を実行するようなものです.1つはjavascriptを使用してクライアント側で実行し、もう1つはリロードまたはポストバックを起動してサーバー上で実行します。

ここで重要な点の1つは、クライアントサイドのコードが常に最初に実行されることです。必要に応じて、サーバサイドのコードが実行されないようにすることができます。

+0

これはイベントオブジェクトを消去しませんか?通常はイベントハンドラの最初のパラメータですか? – Eliu

+0

@Elulu:はい、そうですが、私はイベントオブジェクトを必要としないクライアントサイドスクリプトのために仮定しています。また、サーバーのサイドクリック機能が追加されていても、中断することなくイベントオブジェクトを受信します。 –

+0

私は定数を渡すことができません、私は変数の値をjavascriptメソッドに渡す必要があります – Lisa

関連する問題