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

如何获取动态创建的文本框(textbox)的值?

如何获取动态创建的文本框的值

我懂你现在的需求——通过jQuery动态生成了带文本框的表单组,想要拿到这些动态创建的textbox的值对吧?下面给你几种实用的实现方案:

方案一:针对单个动态文本框,通过事件委托实时取值

如果想在用户操作(比如输入内容、失去焦点)时获取某一个动态文本框的值,可以用事件委托绑定对应事件:

// 先给所有动态文本框加一个统一的类名,比如dyn-input
$(document).on('input', '.dyn-input', function() {
  // 这里的this就是当前触发事件的动态文本框元素
  const currentValue = $(this).val().trim();
  console.log('当前文本框的值:', currentValue);
  // 这里可以直接把值用于后续逻辑,比如实时校验、预览等
});

方案二:批量收集所有动态文本框的值

如果需要一次性获取所有动态生成的文本框内容,可以通过类选择器遍历所有元素:

// 定义一个函数专门收集值
function collectAllDynamicInputs() {
  const inputValues = [];
  // 用统一类名选中所有动态文本框
  $('.dyn-input').each(function(index, element) {
    inputValues.push({
      id: index + 1,
      value: $(element).val().trim()
    });
  });
  console.log('所有动态文本框的值集合:', inputValues);
  return inputValues;
}

// 调用示例:比如点击提交按钮时收集
$(document).on('click', '#submit-btn', function() {
  const allValues = collectAllDynamicInputs();
  // 这里可以把allValues发给后端,或者做其他业务处理
});

关键补充:给动态文本框加统一标识

在你生成动态表单的代码里,记得给文本框加上统一的类名,这样才能方便选中它们。比如修改你生成inner_div的代码:

inner_div = `<div class='col-sm-12 form-group'>
  <label class='col-sm-2 control-label'>参数 ${id_cnt}</label>
  <div class='col-sm-8'>
    <input type='text' class='form-control dyn-input' name='param_${id_cnt}' placeholder='请输入参数值'>
  </div>
  <div class='col-sm-2'>
    <button type='button' class='btn btn-danger btn-sm remove'>
      <span class='glyphicon glyphicon-minus'></span>
    </button>
  </div>
</div>`;

注意事项

  • 绑定动态元素的事件必须用事件委托($(document).on()),因为动态生成的元素在页面初始加载时不存在,直接用$('.dyn-input').on()是绑定不上事件的。
  • 如果需要区分不同的文本框,可以用你的id_cnt拼接出唯一的name属性,这样在批量处理时也能对应到具体的参数项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:59:32