2016-04-13 7 views
1

私はそのチェックボックスがオンまたはオフされるたびに、それはそのをチェックかどうかを確認するために見て、あれば25の値を代入するJavaScript/jQueryのコードを持つようにしたい...チェックボックスのチェックに基づいて変数を変更する方法はありますか?

<input type="checkbox" id="something" name="something" value="25" data-val="25" checked="checked" class="option"> 
    <label for="something">Something</label> 

をこのようなチェックボックスを持っていますチェックされているか、チェックされていない場合は0になります。しかし、私はチェック/チェックを外すことでテストすると、ちょうど25を吐き続けるだけです。チェックを外すと、なぜ0に変わらないのですか?私が間違っていることは何ですか?を変更しないチェックボックスの初期状態 -

$(document).ready(function() { 
    $('.option').on('change', function() { 
     if ($('#something').attr('checked')) { 
      var something = 25; 
     } else { 
      var something = 0; 
     } 
     console.log(something); 
    }); 
}); 
+1

可能な重複[チェックボックスにチェックプロパティをチェック]恐ろしい(http://stackoverflow.com/questions/901712/check-checkbox-checked-property) – Robusto

答えて

1

.attr()方法は "確認" stringを返します。
これは常にtrueと評価され、常にif conditionが実行されます。

フォーム要素のチェック済み、選択済み、 または無効な状態などのDOMプロパティを取得および変更するには、.prop()メソッドを使用します。

$('.option').on('change', function() { 
    var something; 
    if ($(this).prop('checked')) { 
     something=25; 
     } 
    else { 
     something = 0; 
     } 
     console.log(something); 
}); 

それとも、checkboxbooleanを返し.is()方法でチェックチェックされていることができるかどうか:だからあなたはtrue/falseを得ることができます.prop()を使用して

。それをやったの

$('.option').on('change', function() { 
     var something; 
     if ($(this).is(':checked')) { 
      something=25; 
     } else { 
      something = 0; 
     } 
     console.log(something); 
}); 
+1

、。毎日何か新しいことを学ぶ。本当にありがとう! – user3304303

関連する問題