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

请求实现三个输入框联动:输入验证与自动计算填充功能

解决表单输入限制与自动计算问题

我看了你的需求和代码,发现主要问题出在jQuery引用不完整、事件监听逻辑覆盖不全以及数值校验/计算的边界情况处理缺失这几个地方。下面是修复后的完整代码,完全满足你的需求:

<!DOCTYPE html>
<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
  <div>
    <label>总服务数: </label>
    <input type="number" id="totalofservices" name="totalofservices" placeholder="输入总服务数">
  </div>
  <div>
    <label>达标服务数: </label>
    <input type="number" id="totalontarget" name="totalontarget" placeholder="输入达标服务数">
  </div>
  <div>
    <label>未达标服务数: </label>
    <input type="number" id="totalofftarget" name="totalofftarget" readonly>
  </div>

  <script>
    $(document).ready(function() {
      // 监听总服务数和达标服务数的输入事件
      $('#totalofservices, #totalontarget').on('input change', function() {
        const totalServices = parseInt($('#totalofservices').val()) || 0;
        let onTarget = parseInt($('#totalontarget').val()) || 0;

        // 校验达标服务数不能超过总服务数
        if (onTarget > totalServices) {
          onTarget = totalServices;
          $('#totalontarget').val(onTarget);
          alert('达标服务数不能超过总服务数哦');
        }

        // 自动计算未达标服务数
        const offTarget = totalServices - onTarget;
        $('#totalofftarget').val(offTarget < 0 ? 0 : offTarget);
      });
    });
  </script>
</body>
</html>

关键修复点说明:

  • 补全jQuery引用:把你之前截断的脚本链接换成完整的jquery.min.js地址,确保jQuery能正常加载
  • 覆盖所有触发场景:同时监听input和change事件,不管用户是手动输入、粘贴还是通过上下箭头调整数值,都能触发逻辑
  • 处理空值/非数字情况:用|| 0把空值或非数字输入转为0,避免出现NaN的问题
  • 严格数值校验:如果达标服务数超过总服务数,自动将其修正为总服务数,并给出提示
  • 自动计算逻辑优化:总服务数变化时也会重新计算未达标数,确保数值始终同步
  • 设置未达标框为只读:避免用户手动修改这个自动计算的数值,保证数据一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:34:09