我通过php动态生成多个复选框的列表。
<input type=\"checkbox\" name=\"quetext[]\" value=".$row_all_que['id'].">
将数据发布到php的按钮在开始时被禁用。
<input type="button" value="Next" class="btn btn-primary btn-lg btn-block" id="send-que" disabled>
我希望在选中至少一个复选框时启用它。我该怎么做?
此外,一旦我选择了所需的复选框,我需要创建这些复选框的数组并将它们的值传递给php。
编辑1:
由于数据来自我的服务器通过ajax调用,因此复选框元素是动态生成的,因为我在document.ready()中编写的代码没有被执行。 我将代码移到了ajax调用的'success'函数中,并且在选中复选框时启用/禁用按钮现在工作正常。
这是我所做的ajax调用的jquery代码片段:
$.ajax({
type: "POST",
url: "ajaxData.php",
data: data,
success: function(data) {
$('.quedata').html(data);
var checkboxes = $('.quedata .ques-box');
checkboxes.change(function(){
$('#send-que').prop('disabled', !checkboxes.is(":checked"));
});
}
});
这里的'quedata'类是我的tbody元素,其中的复选框正在生成。
这是HTML结构:
<table class="table table-striped" style="margin-top: 50px;">
<thead>
<tr>
<th>ID</th>
<th>Question</th>
<th>Mark(s)</th>
<th><input type="checkbox" disabled></th>
</tr>
</thead>
<tbody class="quedata">
</tbody>
</table>
编辑2:已解决
在我的ajax调用的成功部分中包含代码解决了它,我得到了我想要的输出。我已经发布了一个包含代码的答案。
答案 0 :(得分:0)
我稍微编辑了一下复选框元素,并为其添加了一个类:
<input type=\"checkbox\" name=\"quetext[]\" class=\"ques-box\" value=".$row_que['id'].">
这是我所做的ajax调用的jquery代码片段:
$.ajax({
type: "POST",
url: "ajaxData.php",
data: data,
success: function(data) {
$('.quedata').html(data);
var checkboxes = $('.quedata .ques-box');
checkboxes.change(function(){
$('#send-que').prop('disabled', !checkboxes.is(":checked"));
});
}
});
这是数组生成代码:
$(document).ready(function() {
$('#send-que').click(function(){
var checked = [];
$('.ques-box:checked').each(function(){
checked.push($(this).val());
});
for(var i=0; i<checked.length; i++) {
alert(checked[i]); //Check if values are added
}
});
});
很抱歉在发布之前缺乏研究,这是我在stackoverflow上的第一个问题。