2012-03-20 5 views
5

各ラジオボタンに異なる値のラジオボタンが3つあり、1つのテキストボックスにチェックされているすべてのラジオボタンの合計が表示されているとします。ラジオボタンをクリックするたびに値を集計するのに、どのJqueryイベントまたはJavascriptイベントを使用する必要がありますか?JavascriptまたはjQueryを使用してラジオボタンの値を合計する方法は?

元々、ラジオボタンの隣には選択したラジオボタンの値を表示するためのテキストボックスがありますが、変更するテキストボックスの値を合計するイベントを発生させるのは難しいですキーアップまたはキーダウンはこの状況では機能しません)。

私が達成したいことをよりよく説明するために、以下は私の仕事のサンプルです。どんな助けやヒントもありがとうございます。前もって感謝します。

P.S. .:もしそれほど質問したくないのであれば、働くサンプルを追加して、働くことができるようにしてください。ありがとう。

Yes 
<input type="radio" name="radio1" value="10" /> 
No 
<input type="radio" name="radio1" value="0" /><br /> 
Yes 
<input type="radio" name="radio2" value="10" /> 
No 
<input type="radio" name="radio2" value="0" /><br /> 
Yes 
<input type="radio" name="radio3" value="10" /> 
No 
<input type="radio" name="radio3" value="0" /><br /> 
Total Score: 
<input type="text" name="sum" /> 
+0

質問の最初のバージョンが好きなので、編集する必要はありませんでした。しかし、もし皆さんがHTMLフォームの要素を見ることができるように、コードを強調することを忘れないでください。 (選択したテキストにCTRL + Kを使用)。私の答えは下の例で書かれています。それが役に立ったら – Neysor

答えて

6

が、私はそのようにそれを行うだろう:

function calcscore(){ 
    var score = 0; 
    $(".calc:checked").each(function(){ 
     score+=parseInt($(this).val(),10); 
    }); 
    $("input[name=sum]").val(score) 
} 
$().ready(function(){ 
    $(".calc").change(function(){ 
     calcscore() 
    }); 
}); 

これを参照してくださいjs fiddle example

html構造はあなたのものと同じですが、私はクラスを追加しましたcalc、私はそれを簡単に選ぶことができます。

+0

後で変わった変なバグのために狩りが好きでない限り、第2(基本)引数なしで 'parseInt'を使わないでください。あなたの4行目は 'score + = parseInt($(this).val()、10);' – vzwick

+0

@vzwickを変更しました。私はいくつかの奇妙な動作があるかもしれないことを知っていますが、あなたが先行ゼロまたはそのような何かを持っていない場合はほとんどありません:) – Neysor

+1

あなたは絶対にユーザー(この場合はOP)*が* - マーフィーの法則;)乾杯! – vzwick

0

は、ラジオボタンにid = 'あるmyForm' がフォーム内にあると仮定し、テキストボックスには、ID = 'を有し、totalScore' を:

var sum = 0; 
$("#myForm").find("input[type='radio']:checked").each(function (i, e){sum+=$(e).val();}); 
$("#totalScore").val(sum); 
+0

有用な入力をありがとう。 –

関連する問題