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

如何在Twitter Bootstrap模态框中使用Ajax插入产品记录

用Bootstrap模态框实现产品添加到列表的完整方案

嘿,我来帮你搞定这个需求!你已经有了触发模态框的按钮,接下来我把完整的实现代码和逻辑整理给你,直接就能用:

1. 补全模态框与列表容器的HTML

首先把你的模态框补全,加上产品名称、数量的输入表单,还有用来展示产品的列表容器:

<!-- 你已有的触发按钮 -->
<a data-toggle="modal" data-target="#myDesayuno" href="#" class="btn btn-primary">Desayunos <span class="glyphicon glyphicon-plus-sign"></span></a>

<!-- 用来展示产品的列表容器 -->
<ul id="productList" class="list-group mt-3">
  <!-- 动态添加的产品项会在这里显示 -->
</ul>

<!-- 完整的Bootstrap模态框 -->
<div class="modal fade" id="myDesayuno" tabindex="-1" role="dialog" aria-labelledby="desayunoModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="desayunoModalLabel">添加早餐产品</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form id="addProductForm">
          <div class="form-group">
            <label for="productName">产品名称</label>
            <input type="text" class="form-control" id="productName" placeholder="比如:牛奶面包" required>
          </div>
          <div class="form-group">
            <label for="productQuantity">数量</label>
            <input type="number" class="form-control" id="productQuantity" min="1" placeholder="至少1份" required>
          </div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
        <button type="button" class="btn btn-primary" id="submitProduct">添加到列表</button>
      </div>
    </div>
  </div>
</div>

2. 编写JavaScript处理提交逻辑

接下来写JS代码,监听添加按钮的点击,获取输入的产品信息,然后动态添加到列表里,顺便加了个删除功能(不需要的话可以删掉):

// 等页面DOM加载完成再执行
document.addEventListener('DOMContentLoaded', function() {
  // 获取需要用到的元素
  const submitBtn = document.getElementById('submitProduct');
  const nameInput = document.getElementById('productName');
  const quantityInput = document.getElementById('productQuantity');
  const productList = document.getElementById('productList');

  // 监听添加按钮的点击事件
  submitBtn.addEventListener('click', function() {
    // 获取输入值并去除前后空格
    const productName = nameInput.value.trim();
    const productQty = parseInt(quantityInput.value.trim());

    // 简单验证输入是否有效
    if (productName && !isNaN(productQty) && productQty >= 1) {
      // 创建新的列表项
      const listItem = document.createElement('li');
      listItem.className = 'list-group-item d-flex justify-content-between align-items-center';
      listItem.innerHTML = `
        <span><strong>${productName}</strong> - 数量: ${productQty}</span>
        <button class="btn btn-sm btn-danger delete-item">删除</button>
      `;

      // 把列表项添加到列表里
      productList.appendChild(listItem);

      // 给删除按钮绑定点击事件
      listItem.querySelector('.delete-item').addEventListener('click', function() {
        listItem.remove();
      });

      // 清空表单并关闭模态框
      document.getElementById('addProductForm').reset();
      $('#myDesayuno').modal('hide');
    } else {
      // 提示用户输入正确的内容
      alert('请输入有效的产品名称和数量哦,数量至少是1~');
    }
  });
});

3. 必要的依赖引入

别忘了在页面里引入Bootstrap的CSS、jQuery和Bootstrap的JS文件(顺序不能乱):

<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/css/bootstrap.min.css">
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/js/bootstrap.min.js"></script>

这样一套下来,点击你的Desayunos按钮就能打开模态框,输入产品信息后点击添加,就能把产品加到列表里了,还能删除不需要的项,完美满足你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:24:32