2012-04-23 13 views
1

私は電卓になるために書いていますので、クライアントはサービスのコストを見て、テキスト入力の変更に基づいて結果を更新することができます。問題は最初の周りを回った後、値の計算が正しく停止したことです。ここでは、それはappretiatedヘルプです。シンプルな電卓jqueryスクリプト

<script> 
$(function(){ 


var one=0; 
var two=0; 
var three=0; 
$("input:text").change(function(){ 
if($(this).val() == $('#first').val()) 
{ 
one = parseInt($(this).val()); 



} 
else if($(this).val() == $('#second').val()){ 

two = parseInt($(this).val()); 

} 
else if($(this).val() == $('#third').val()){ 

three = parseInt($(this).val()); 

} 

}); 


$('input:text').change(function(){ 

$('#result').text(one+two+three); 


}); 


}); 


</script> 

とフォーム:

<div id="container"> 
<form action="something.html" id="subit"> 
<label for="first">put numbers</label><input type="text" id="first"/> 
<label for="second">more numbers</label><input type="text" id="second" value="0"/> 
<label for="third">and more numbers</label><input type="text" id="third" value="0"/> 
<input type="submit" /> 
</form> 
<div id="result"></> 
</div> 
+0

最初の実行後に 'change()'関数を変更していますか? – Marc

+0

マーク、どういう意味ですか?基本的に私が最初にやろうとしているのは、値を変数に代入し、その値を加算して結果を更新することです。 –

+0

問題は、「カウント」が追加の最初のラウンド後に消えてしまうことです。 val 1、2,3を追加してからもう一度変更してみてください。結果は間違っています。 –

答えて

1

このコードを試してみてください

$(document).ready(function() { 
    var textboxes = $("#container input:text"); 
    textboxes.on("keyup", function() { 
     var amt = 0; 
     textboxes.each(function() { 
      amt += +$(this).val(); 
     }); 
     $("#result").html(amt); 
    }); 
});​ 

ワーキングフィドル:あなたのコード

にこれらの事を変える http://jsfiddle.net/naveen/87p53/あなたのコードについては


a。 IDと値を比較します。そのより安全な方法です。
b。 2番目の変更機能を削除します。まったく必要ありません。

$(function() { 
    var one = 0; 
    var two = 0; 
    var three = 0; 
    $("input:text").change(function() { 
     if (this.id == "first") { 
      one = parseInt($(this).val()); 
     } 
     else if (this.id == "second") { 
      two = parseInt($(this).val()); 
     } 
     else if (this.id == "third") { 
      three = parseInt($(this).val()); 
     } 
     $('#result').html(one + two + three); 
    }); 
});​ 
+0

Naveen Awesome!非常に簡潔です。 –

+0

私が書いたコードがうまくいかない理由を知りましたか? –

+0

もう一度、常に楽しい学習に感謝します。 –