iou3344 2022-12-30 08:40 采纳率: 85.2%
浏览 71
已结题

jquery给指定区域内的空格加多选框并提交

<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>
  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-12-30 10:15
    关注
    <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>
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 修改了问题 12月30日
  • 赞助了问题酬金15元 12月30日
  • 展开全部

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!