2016-12-15 21 views
0

私は、ユーザーがテキストボックスに入力した情報をプルし、その結果を "window.alert()"メソッドに表示するためにJavaScript関数に渡そうとしています。ASP.NET TextBoxのユーザー入力をJavaScript関数に渡すにはどうすればよいですか?

私は現在ASP.NETを使用しています。これは、私がこれまでにASP.NETのフロント部分とJavaScriptのために持っているものです。

<asp:Button ID="btnCalculateSalary" runat="server" Text="Calculate Salary" OnClick="calcFunction()" /> 

    <script> 
     function calcFunction(c1, c2) { 
      c1 = document.getElementById('txtAnnualHours').value; 
      c2 = document.getElementById('txtPayRate').value; 

      return window.alert("Your Annual Salary is: " + c1 * c2); 
     } 
+0

'OnClick'ではなく、あなたのコントロールのために' OnClientClick'を探していますか? – David

+0

いずれかが動作します。私は学んでいるので、どのJavaScriptがJavaScriptに対応しているのかわかりません。 –

+1

さて、サーバー側のコントロールの 'OnClick'は、サーバー側のイベントを処理することです。クライアント側のクリックハンドラには 'OnClientClick'を使います。ただし、それは依然としてサーバー側のコントロールであり、ページ全体をポストバックでリフレッシュさせる可能性があります。 – David

答えて

1

これは、あなたが何を考えてやっていません。

OnClick="calcFunction()" 

それは、サーバー側のASP.NET「コントロール」ではなくHTML要素ですので、OnClickは、ASP.NETのサーバ - を参照していますサイドイベントハンドラ。しかし、実行されるクライアント側の機能があります。その場合は、次のコマンドを試してみてください。

OnClientClick="calcFunction()" 

ただし、重要な点はサーバー側のASP.NETコントロールであることです。つまり、クライアント側のクリックイベントを処理した後、(関連性のない要素の数に応じて)は、ページを更新するサーバーへのポストバックを依然として呼び出します。初心者の間でよくある混乱の原因は、クイックページのリフレッシュがクライアント側の状態を「リセット」し、「動作していません」と疑わせることです。

多くの場合、クライアント側のアクションを実行するだけでよく、サーバー側のコントロールをすべてスキップして、通常のHTML要素を使用することができます。

別の関連しない副作用... JavaScript関数では、関数宣言にc1, c2パラメータが必要なくなります。値は関数に渡されず、渡された値は関数で使用されていません。

+0

は本当に追加のコメントを感謝します。 –

関連する問題