0

I'm trying to get checkbox value from multiple checkbox.I have code as below:

 <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">

what I want: when I check on checkbox,it will alert the value of checkbox. I have jquery code as below:

  $('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'));
    }
});
});

Anyone please kindly help me, Thanks.

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

试试下面的代码。在你的 $(this) 中指的是 $('input[type="checkbox"]').each 的元素,因此它对所有复选框都重复。我已将 更改事件更改为单击,因为这个事件很好用而不是更改。

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

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

 });
于 2013-09-11T04:18:46.310 回答
0

好的,我知道在 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

更多地each研究 jQuery 函数......我认为你需要的是函数内部的参数,each比如each(function(i,element) {})wherei充当复选框的迭代器,并且element可用于引用该复选框。我认为问题是因为您使用的是(this),它没有引用确切的复选框。

我希望我带领你朝着正确的方向前进。

于 2013-09-11T04:11:12.767 回答
0

尝试这个,

$(this).val();

它的工作。

于 2013-09-11T04:11:40.947 回答