我正在尝试从多个复选框中获取复选框值。我的代码如下:
<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'));
}
});
});
任何人请帮助我,谢谢。
答案 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'));
}
});
答案 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());
}
});