复选框 - 检查了什么? jQuery的

时间:2011-08-26 17:00:21

标签: jquery checkbox

我有这段代码:

<input type="checkbox" id="checkbox" value="11">
<input type="checkbox" id="checkbox" value="10">

<div id="log"></div>

$("input").click(function() {
  $("#log").html( $(":checked").val() + " is checked!" );
});

如果我先检查第一个复选框,然后是下一个复选框,则会添加:11已选中。

我该怎么做,它需要所有提交的复选框值 - 如: 11,10,检查。

是否可以使用php提取这些值,所以它看起来像这样: 10 11 没有&#34;,&#34;

更新:

$('input[type="submit"]').click(function() {
    var kolort = $('input[type="checkbox"]:checked').val(); 
    var output = $(this).text() + ", " + kolort;

  /*
  $('input[type="checkbox"]:checked').each(function(index) {
    output += $(this).text() + ", ";
  });*/

  alert(output + "is checked!");
});

我现在有这个。虽然,它只打印出一个值,而不是两个。 我怎样才能从EACH输入中获取值?

6 个答案:

答案 0 :(得分:1)

  1. 两个控件的ID不能相同。

  2. 根据修复#1,很容易使用.val()和/或将返回的jQuery集合视为有序序列。由于#1是固定的,因此需要基于类型或名称等的选择器

  3. 帖子中的代码不与PHP交互。考虑修改问题/代码。请注意,<input type="checkbox" name="choice[]">(注意名称)可能有助于在服务器上作为集合进行处理。

  4. 快乐的编码。

答案 1 :(得分:1)

您可以使用jQuery的.each() API:

$('input[type="submit"]').click(function() {
  var output = '';

  $('input[type="checkbox"]:checked').each(function(index) {
    output += $(this).val() + ", ";
  });

  alert(output + "is checked!");
});

测试页面:http://pastebin.com/LVuLUthB

至于删除逗号,在PHP中处理时不会有逗号。复选框作为数组发送。你想要做的是:

<input type="checkbox" name="checkbox[]" value="11">
<input type="checkbox" name="checkbox[]" value="10">

然后在PHP中:

echo implode(', ', $_POST['checkbox']) . ' are checked!';

答案 2 :(得分:0)

看看jQuery .each()。以下内容将遍历所有选中的复选框。正如@zod在评论中指出的那样, ID是唯一的,而是使用类。

$("input").click(function() {
    $(":checked").each(function() {
         $("#log").html($(this).val() + " is checked!");
    });
});

答案 3 :(得分:0)

试试这个

http://www.sitepoint.com/forums/javascript-15/get-value-checkbox-checked-jquery-583619.html

$(function(){
  $('#btnClick').click(function(){
    var val = [];
    $(':checkbox:checked').each(function(i){
      val[i] = $(this).val();
    });
  });
});

并参考此

http://api.jquery.com/checked-selector/

答案 4 :(得分:0)

.val()将始终返回第一个匹配元素的值:http://api.jquery.com/val/

试试这个:

$("input").click(function() {
    $(":checked").each(function() {
        $("#log").html( this.val() + " is checked!" );
    })

});

答案 5 :(得分:0)

就像@zod说的那样,你的复选框上需要不同的ID。此外,您还需要一个循环来处理所有复选框。试试这个:

var total = ""; $(":checked").each(function(){ if(total != "") total = total + ","; total = total + $(this).val(); }); $("#log").html(total + " is checked!");