<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<form action="" method="post" class="contact-form">
<table id="example">
<tbody>
<tr><td>编剧</td><td>张三 李四</td></tr>
<tr><td>片名</td><td>片名随便写写就行</td></tr>
<tr><td>类别</td><td>悬疑 爱情 枪战</td></tr>
<tr><td>演员</td><td>张某某 李某某 王某某 周某某</td></tr>
<tr><td>发行时间</td><td>2022年12月31日</td></tr>
</tbody>
</table>
<input type="submit" value="Submit" />
</form>
页面加载完后,就将这个id="example"的表格中的空格换成多选框(checkbox),而且每一行的checkbox的name是一样的(命名规则由您确定),而且表单提交后,可以将相同name的选项提交为一组用空格隔开的数据,比如选择了悬疑和枪战,并且这一组的name是name3,那么提交表单后,name3=悬疑 枪战
也就是要形成这样的代码
<table id="example">
<tbody>
<tr><td>编剧</td><td><input type="checkbox" name="name1" value="张三" />张三 <input type="checkbox" name="name1" value="李四" />李四 <input type="checkbox" name="name1" value="王五" />王五
</td></tr>
<tr><td>片名</td><td><input type="checkbox" name="name2" value="片名随便写写就行" />片名随便写写就行</td></tr>
<tr><td>类别</td><td><input type="checkbox" name="name3" value="悬疑" />悬疑 <input type="checkbox" name="name3" value="爱情" />爱情 <input type="checkbox" name="name3" value="枪战" />枪战</td></tr>
<tr><td>演员</td><td><input type="checkbox" name="name4" value="张某某" />张某某 <input type="checkbox" name="name4" value="李某某" />李某某 <input type="checkbox" name="name4" value="王某某" />王某某 <input type="checkbox" name="name4" value="周某某" />周某某</td></tr>
<tr><td>发行时间</td><td><input type="checkbox" name="name5" value="2022年12月31日" />2022年12月31日</td></tr>
</tbody>
</table>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<form action="" method="get" class="contact-form">
<table id="example">
<tbody>
<tr><td>编剧</td><td>张三 李四</td></tr>
<tr><td>片名</td><td>片名随便写写就行</td></tr>
<tr><td>类别</td><td>悬疑 爱情 枪战</td></tr>
<tr><td>演员</td><td>张某某 李某某 王某某 周某某</td></tr>
<tr><td>发行时间</td><td>2022年12月31日</td></tr>
</tbody>
</table>
<input type="submit" value="Submit" />
</form>
<script>
var tds=$('#example tr td:nth-child(2)').html(function (index, el) {
return this.innerText.split(' ').map(i => `<input type="checkbox" value="${i}"/>${i}`).join(' ')
//隐藏控件存储值,checkbox不需要name,隐藏控件的名称依次为name0~name4,依次对应编剧,片名,类别,演员,发行时间
+ `<input type="hidden" name="name${index}"/>`
});
//注册提交事件,设置hidden控件值为勾选的checkbox
$('.contact-form').submit(function () {
tds.each(function () {
$(':hidden', this).val($(':checkbox:checked', this).map(function () { return this.value }).get().join(' '));
})
})
</script>
首先,在页面加载完后,可以使用 jQuery 的遍历方法 $(selector).each() 遍历表格中的所有单元格,然后使用 jQuery 的 replaceWith() 方法将每个单元格中的内容替换成多选框。
具体的代码如下所示:
$(document).ready(function(){
$('#example td').each(function(){
var cellContent = $(this).html();
var checkbox = '<input type="checkbox" name="name3" value="' + cellContent + '">';
$(this).html(checkbox);
});
});
在表单提交时,可以使用 jQuery 的 serialize() 方法将表单中的数据序列化为字符串,然后使用 $.ajax() 方法将表单数据提交到服务器端。
具体的代码如下所示:
$('.contact-form').submit(function(event){
event.preventDefault();
var formData = $(this).serialize();
$.ajax({
type: 'POST',
url: 'your-server-side-url',
data: formData,
success: function(response){
// 处理服务器端的响应
}
});
});
望采纳。
提供实例思路【JQuery实现复选框CheckBox的全选、反选、提交操作】,链接:https://blog.csdn.net/pan_junbiao/article/details/107666302