点击提交按钮传入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
相关产品推荐
相关产品推荐

