0

複数のチェックボックスからチェックボックスの値を取得しようとしています。以下のコードがあります。

 <input class="ng-pristine ng-valid" type="checkbox" name="ch" value="a" ng-model="todo.done">
 <input class="ng-pristine ng-valid" type="checkbox" name="ch" value="b" ng-model="todo.done">
 <input class="ng-pristine ng-valid" type="checkbox" name="ch" value="c" ng-model="todo.done">
 <input class="ng-pristine ng-valid" type="checkbox" name="ch" value="d" ng-model="todo.done">

私が欲しいもの:チェックボックスをオンにすると、チェックボックスの値が警告されます。私は以下のようなjqueryコードを持っています:

  $('input[type="checkbox"]').change(function() {
$('input[type="checkbox"]').each(function() {
    if ($(this).is(':checked')) {
    //the problem in here when I alert it will display many time with the other value of checkbox
    //what I need: I want to get only value of it when I check on it.
        alert($(this).prop('value'));
    }
});
});

誰でも親切に助けてください、ありがとう。

4

7 に答える 7

3

チェックボックス要素をループする必要はありません

$('input[type="checkbox"]').change(function () {
    if (this.checked) {
        alert(this.value);
    }
});

デモ:フィドル

于 2013-09-11T04:08:12.340 に答える
1

これはこのように動作するはずです

$('input[type="checkbox"]').change(function() {
if ($(this).is(':checked')) {
        alert($(this).attr('value'));
    }
});

フィドル

于 2013-09-11T04:07:50.867 に答える
0

OK、私はPHPで知っています。チェックボックスに同じ名前を付けたい場合は、それを配列に入れる必要があります

<input class="ng-pristine ng-valid" type="checkbox" name="ch[1]" value="a" ng-model="todo.done">

など、jqueryでも配列をループする必要があると確信しています。申し訳ありませんが、正確なコードはわかりません。:(

于 2013-09-11T04:09:04.727 に答える
0

これを試して:

$('input[type="checkbox"]').click(function () {
     alert($(this).val());
});
于 2013-09-11T04:09:35.217 に答える
0

jQuery関数をもっと調べてください...必要なのは、チェックボックスのイテレータとして動作し、そのチェックボックスを参照するために使用できる場所のような関数each内のパラメータだと思います。問題は、正確なチェックボックスを参照していないを使用しているためだと思います。eacheach(function(i,element) {})ielement(this)

私があなたを正しい方向に導いたことを願っています。

于 2013-09-11T04:11:12.767 に答える
0

次のコードを試してください。あなたの $(this) は $('input[type="checkbox"]').each の要素を参照するため、すべてのチェックボックスで繰り返されます。これは変更 ではなく使用するのに適しているため、変更イベントをクリックに変更しました。

  $('input[type="checkbox"]').click(function() {

    if ($(this).is(':checked')) {
               alert($(this).val());
    }

 });
于 2013-09-11T04:18:46.310 に答える
0

これを試して、

$(this).val();

その働き。

于 2013-09-11T04:11:40.947 に答える