2017-01-19 7 views
1
  • のWindows 7
  • のVisualStudio 2015
  • C#。ネットMVC
  • jqueryの3.1.1

をチェックします。私はチェックボックスを持っていて、アイテムの "id"番号(インデックス)を保持する要素をdataに設定しました。私は、チェックボックスに変更する方法火災をクリックして、私は期待どおりindexが設定されているとき、私はjqueryのチェックボックスは、私は些細な何かが欠けている必要があり財産と三項演算子

1  $("input#item_IsHere").on("change", 
2   function() { 
3    var index = $(this).data("index"); 
4    var checked = $(this).checked === true ? 1 : 0; 
5 
6    console.log("on change: " + $(this).checked); 
7    //... 
8   }); 

以下on change方法があります。私が期待していなかったのは、プロパティが$(this)であることが定義されていないということです。

また、私は、このためのフィドルを試してみましたが、フィドルが働いた:/

私はChromeとFirefoxでこれを見ています。ページが読み込まれると、チェックボックスが表示され、デベロッパーツールのデバッガーが起動します。デバッガでは、私はconsole.log(lise 6)にブレークポイントを設定しました。チェックボックスをクリックすると、ブレークポイントまで実行され、待機します。最初の$(this)(3行目)にカーソルを合わせると、checkedプロパティがtrueに設定されていることがわかります。 var checkedの値が0になってしまうとconsole.logの結果は、私はまた、

var checked = $(this).checked ? 1 : 0; 
and 
    var checked = $(this).is(":checked") ? 1 : 0; 
and 
    if ($(this).checked) { 
     checked = 1; 
    } else { 
     checked = 0; 
    } 
としてライン4に三項演算子をやった、ああ

on change: undefined 

であることを

問題があります

と同じ結果が得られました。

私には見えないものはありますか?

+2

を使用する必要があります。代わりに '$(this).is( ':checked')'を使用してください。 –

答えて

1

あなたはjQueryのには、関数 `checked`はありません$("input").is(":checked")

var checked = $("input:eq(0)").is(":checked") ? 1 : 0; 
 

 
console.log(checked);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="checkbox" checked />

+0

一言、質問を投稿する直前に '.is(":checked ")'を試してみましたが、失敗しました。皆さん、ありがとうございました。 –

+0

問題はありません。この質問には –

+0

と記されていますが、そうですが、重複としてマークされています。ありがとう、すべて同じ。 –

関連する問題