使用jquery从多个复选框中获取一个复选框值

时间:2013-09-11 04:05:30

标签: javascript jquery checkbox

我正在尝试从多个复选框中获取复选框值。我的代码如下:

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

任何人请帮助我,谢谢。

7 个答案:

答案 0 :(得分:3)

无需遍历复选框元素

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

演示:Fiddle

答案 1 :(得分:1)

这应该像这样工作

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

FIDDLE

答案 2 :(得分:0)

好的,我知道在php中如果你想为你选择相同的名称,你需要把它放在一个数组中

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

   

etcetera,所以我确定你必须在jquery中循环遍历数组,抱歉,我不知道确切的代码。 :(

答案 3 :(得分:0)

试试这个:

$('input[type="checkbox"]').click(function () {
     alert($(this).val());
});

答案 4 :(得分:0)

进一步了解each jQuery函数...我认为你需要的是each函数中的参数,如each(function(i,element) {})其中i表现为复选框的迭代器并且element可用于引用该复选框。我认为问题是因为您使用的是(this),它没有引用完全相同的复选框。

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

答案 5 :(得分:0)

试试这个,

$(this).val();

它的工作。

答案 6 :(得分:0)

尝试以下代码。 在你的$(this)中指的是$('input [type =“checkbox”]')的elemnets。每个,因此它为所有复选框重复。我已将更改事件更改为点击,因为这个事件很适合使用而不是更改。

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

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

 });