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

点击提交按钮传入this参数,如何获取同class的文本框值?

解决按class筛选文本框并传入提交按钮上下文的问题

嘿,我来帮你搞定这个问题!你现在的代码是按data-name属性筛选输入框,而且虽然把提交按钮的this传进函数了,但没用上。咱们一步步调整,满足你的需求:

核心问题梳理

你想要的是:点击提交按钮时,按class名称筛选文本框,同时把按钮的this作为参数传入通用函数(还可以利用这个上下文来精准筛选当前表单内的输入框,避免全局匹配的冲突)。

调整后的代码示例

假设你的目标文本框的class是target-input,提交按钮所在的表单容器class是form-container,可以这么改:

function generalBottom(anchor) {
  // 方案1:获取页面中所有带目标class的输入框
  // var sends = $('input.target-input').map(function() {
  
  // 方案2(更推荐):只获取提交按钮所在容器内的目标输入框,避免全局冲突
  var sends = $(anchor).closest('.form-container').find('input.target-input').map(function() {
    return $(this).val(); // 直接返回用户输入的当前值,无需额外设置attr
  }).get();

  // 这里可以添加后续逻辑,比如打印结果或者提交数据
  console.log('获取到的文本框值:', sends);
}

关键调整点说明

  • 替换选择器:把原来的$('input[data-name^="noValues"]')换成$('input.你的class名'),这样就实现了按class筛选文本框。
  • 利用传入的this:通过$(anchor).closest('.form-container')找到提交按钮所在的父容器,再用find定位容器内的目标输入框,这样只会处理当前表单的元素,不会影响页面其他同class的输入框,逻辑更严谨。
  • 简化取值逻辑:删掉了没必要的$(this).attr('value', $(this).val())——因为$(this).val()已经能直接获取用户输入的当前值,attr('value')是元素的初始默认值,这里完全不需要同步。

使用方式保持不变

提交按钮的onclick事件写法不用改,还是:

<button onclick="generalBottom(this)">提交</button>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:54:23