我有这段代码:
<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输入中获取值?
答案 0 :(得分:1)
两个控件的ID不能相同。
根据修复#1,很容易使用.val()
和/或将返回的jQuery集合视为有序序列。由于#1是固定的,因此需要基于类型或名称等的选择器
帖子中的代码不与PHP交互。考虑修改问题/代码。请注意,<input type="checkbox" name="choice[]">
(注意名称)可能有助于在服务器上作为集合进行处理。
快乐的编码。
答案 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();
});
});
});
并参考此
答案 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!");