You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过HTML、JS、Jinja、Flask等方法让nav-tabs实现提交按钮功能

实现方案1:JavaScript 实现(无需调整原有DOM结构位置,兼容性好)

步骤1:修改nav-tabs导航栏代码,新增自定义属性标识对应操作类型

<ul class="nav nav-tabs nav-justified" id="workTabs">
  <li role="presentation" class="active"><a href="javascript:void(0)" data-work-type="Work-1">Work-1</a></li>
  <li role="presentation"><a href="javascript:void(0)" data-work-type="Work-2">Work-2</a></li>
</ul>

步骤2:修改表单代码,新增隐藏字段存储提交类型,同时修正原有提交按钮多余的引号错误

<form name='text' id="workForm" action='' method="POST">
  <!-- 新增隐藏字段传递提交类型 -->
  <input type="hidden" name="submit_button" id="submitType">
  <textarea name="text" class="form-control custom-control" rows="3">insert text here</textarea>
    <div style="text-align: center; margin: 10px;">
      <!-- 修正原来多写的双引号 -->
      <input type="submit" name="submit_button" class="btn btn-primary" value="Work-1" />
      <input type="submit" name="submit_button" class="btn btn-primary" value="Work-2"/>
    </div>
</form>

步骤3:新增JS监听逻辑

document.querySelectorAll('#workTabs a').forEach(tab => {
  tab.addEventListener('click', function() {
    // 赋值提交类型
    document.getElementById('submitType').value = this.dataset.workType;
    // 提交表单,逻辑和原按钮完全一致
    document.getElementById('workForm').submit();
  })
})

实现方案2:无JS纯HTML实现(仅需调整导航栏位置)

将nav-tabs导航栏整体移入<form>标签内部,把a标签替换为提交按钮,用CSS伪装成导航栏样式即可,无需额外JS代码:

<form name='text' action='' method="POST">
  <!-- 导航栏移入form内部 -->
  <ul class="nav nav-tabs nav-justified">
    <li role="presentation" class="active">
      <button type="submit" name="submit_button" value="Work-1" class="nav-link btn btn-link border-0">Work-1</button>
    </li>
    <li role="presentation">
      <button type="submit" name="submit_button" value="Work-2" class="nav-link btn btn-link border-0">Work-2</button>
    </li>
  </ul>
  <textarea name="text" class="form-control custom-control" rows="3">insert text here</textarea>
    <div style="text-align: center; margin: 10px;">
      <input type="submit" name="submit_button" class="btn btn-primary" value="Work-1" />
      <input type="submit" name="submit_button" class="btn btn-primary" value="Work-2"/>
    </div>
</form>

两种方案后端Flask逻辑都不需要做任何修改,提交的请求参数和原有按钮触发的请求完全一致,会自动匹配你已写好的判断逻辑返回对应结果页。

内容的提问来源于stack exchange,提问作者user16338798

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:06:04