2011-06-22 21 views
4

私の他の質問(これは答えられました)hereとちょっと関連して、次のことが可能かどうか疑問に思っていました(おそらく非常に基本的ですが、フォーム上の値のリアルタイム更新

私はユーザーがフォームに何かを入力する2つの入力フィールドを持っています。彼らは "計算"を押すと、関数は入力した値を合計し、それぞれの値に対してそれぞれ1,2%を計算します。

input 1%value
input 2%value
input 3%value
total total

私はリアルタイムでフォームを更新することができるようにするための方法があります:それは次のようになりますか?だからこれは私が意味するように、ユーザーがフィールドに値を入力すると、関数は自動的にtotalなどの値の更新を開始しますか?これを達成するにはどうしたらいいですか?JavaScriptで純粋に行うことはできますか?

おかげ

KIZ

+0

計算をトリガーする各フィールドに 'onblur'イベントリスナーを追加します。 – Gary

+0

皆さんのお返事ありがとうございます、私はこれを少し考えていきますが、ここのすべての回答はうまくいっています。ありがとう – zik

+0

AngularJS(angularjs.org)は、データバインディングや他の多くのタスクを非常に簡単かつ効率的に処理する上で非常に便利です。 http://docs.angularjs.org/guide/databinding –

答えて

0

あなたが値(ユーザーの種類としてmeaningly、) 'リアルタイム' を表示したい場合は、あなたがからkeyup値は使用することができます。

よろしく、

マックス

+0

ありがとう、これは私が探していたものであり、実現したものです。今はNaNを返すのを止めるためにisNaN関数を操作するだけです! – zik

+0

実際にソートされたので、値を '0'で事前に設定する必要がありました。あなたがどのように知っているとき簡単に! :/ – zik

1

ここにあなたのための完全な答えを構築することなく、いくつかのヒントがあります:

純粋なJavascriptを要素から.valueを使用して、このような何かが必要になります。

alert(document.getElementById('elementid').value); 

jqueryのようなjavascriptライブラリを使用している場合、何かを使用することができます.val()

編集:あなたが変更

+0

'javascript as jquery' ??どういう意味ですか? jQueryは、私のタイプミスであったjavascript – Neal

+0

を使用するライブラリです。 "jqueryとしてのjavascriptライブラリ"を意味します。今更新しました – GeertvdC

+0

ありがとうございます。 – zik

4

置きonBlurイベントのイベントハンドラを処理するためにonchangeイベントを使用することができます。あなたはcalculateStuff()と呼ばれるJavaScript関数を持っていた場合、あなたの入力要素は、このようにそれを参照することができます:

<input name="something" type="text" onblur="calculateStuff();" value=""> 

をユーザー場を離れたときonBlurイベントが発生します。あなたが入力している間にそれが起こりたいのであれば、同じ方法でonChangeハンドラを使うことができます。

+0

恐ろしい私はこれを試してみましょう。両方のお返事をありがとう。 – zik

+0

はリアルタイムではなく、他のものに焦点を当てた後で、 'onfocus =" calculateStuff(); "でなければならず、いずれの場合でもインラインJavaScriptは避けるべきです。 –

2

はい。 JavaScriptでonkeyup/onchangeイベントを呼び出して、ユーザーが何かを入力したかどうかを判断し、数式を実行して値を挿入することによってフォームをリフレッシュするJavaScript関数を呼び出すだけで、イベント内にあるかどうかを判断する必要があります。

また、ぼかしなどの他のイベントリスナーを追加することもできます。

私は使用できないコードを投稿できませんが、Googleはあなたの友人です。

0

これは簡単です!ボタンを使用する代わりに、各入力にonChange="your_calculate_function()"属性を追加します。

関連する問題