3

ラジオボタンの数が異なるページがあります。これらのボタンには、 と の 2 つの異なるクラスがyesありnoます。ユーザーがページを下っていくときに、ユーザーが選択した各クラスの数を把握し<p>、ページの下部に表示する必要があります。

ユーザーがラジオ ボタンを 2 回以上クリックすると、変数に 1 が追加されないという問題があります。これが私のコードのJSフィドルです:

http://jsfiddle.net/AnWU3/3/

なんらかの理由でまったく機能していません。その理由はわかりません。

4

5 に答える 5

6

次のことを試してください。

$(document).ready(function() {
    $('input:radio').change(function(){
        var yes = $('.yes:checked').length
        var no = $('.no:checked').length
        $('.yes_results').text(yes)
        $('.no_results').text(no)                        
    })
});

デモ

于 2012-07-18T21:19:19.697 に答える
0

クリックイベントの代わりに、私が思う変更イベントを使用する必要があります。

$('input:radio').change(function(){ 
   $('.yes_results').text($('input.yes:radio:checked').length) 
   $('.no_results').text($('input.no:radio:checked').length)                         
});

注:速度input:radioのセレクターの上にあるフォームを使用して:radio、DOMのグローバル検索を回避し、入力要素のみに制限します。

IDを単数形に制限してください:RadioGroup1_1重複するIDです。

注:私はクラスを使用してカウントしました。プロパティを使用することもできますがchecked、SOに関する他のパフォーマンス関連の質問/回答に基づいて、クラスはより高速になると思います。

于 2012-07-18T21:42:55.560 に答える
0

クリックされたときに値をインクリメントするのではなく、カウントを実行します。

$('input.yes:checked').length

$('input.no:checked').length

于 2012-07-18T21:19:07.340 に答える
0

change イベントを使用して、毎回チェック ボックスの数を確認します。

$(".no,.yes").change(function() {        
    $('.yes_results').text($('.yes:checked').length);
    $('.no_results').text($('.no:checked').length);
});

フィドル

于 2012-07-18T21:23:38.273 に答える
0

ここに私がそれを変更するものがあります

          $(document).ready(function() {
var nos = 0;
var yeses = 0;
$(".no").click(function() {

    if($('.no').is(':checked')) {
        nos = nos + 1;
        alert(nos);
    }
});
$(".yes").click(function() {

     if($('.yes').is(':checked')) {
        yeses = yeses + 1;
        alert(yeses);
    }
});
});​
于 2012-07-18T21:25:41.097 に答える