0

私の状況では、何らかの理由でチェックボックスがオンになっているかチェックされていないかが区別されないという点で、jQueryコードに問題があります。最初のアカウントでそれらを認識します(つまり、最初にチェックされていない場合、実際にはチェックされていないことを認識します)。ただし、チェックを外すと、チェックが外されていると見なされます。

あなたはここで見ることができます:http: //jsfiddle.net/3BZp4/1/

オンにすると、行が2番目のテーブルにコピーされますが、同じ行のチェックを外すと、セレクターがチェックされていない行のみを要求しているにもかかわらず、2番目のテーブルにコピーされます。

$('#one tbody tr td input.checkbox:not(:checked)').on('change', function (e)
{ });
4

3 に答える 3

2

現在オフになっているすべての入力ボックスに関数をバインドしたようです。その関数は、その後の状態に関係なく、常にこれらのチェックボックスにバインドされます。codeparadoxが行ったのとほぼ同じように、バインドされた関数の一部としてチェックされたステータスをチェックする必要があります。

于 2012-05-30T09:18:42.740 に答える
1

作業デモこれはあなたが探しているものですかhttp://jsfiddle.net/gvDGS/2/

API http://api.jquery.com/not-selector/

私が何かを逃した場合は私に知らせてください、これが役立つことを願っています!

code //すべてのチェックされていないものにバインドしますが、チェックボックスがオンになっているかどうかをチェックします。

$('input[type=checkbox]:not(:checked)').on('change', function() {

   if( $(this).is(':checked') ){
        var row = $(this).closest('tr').html();
        $('#two tbody').append('<tr>' + row + '</tr>');
    }
});
于 2012-05-30T09:24:38.050 に答える
1

あなたはこのようなことを試すことができます:

$(':checkbox').on('change', function() {
  if(this.checked) {
     // do if checked
  } else {
    // do if not checked
  }
});

完全なコードは次のようになります。

$('#one tbody tr td input.checkbox').on('change', function(e) {
    if (this.checked) {
        var row = $(this).closest('tr').html();
        $('#two tbody').append('<tr>' + row + '</tr>');
    }
});

このデモをチェックしてください

于 2012-05-30T09:14:03.610 に答える