如何使用jQuery将符合条件的表单值传递到隐藏表单字段
原有代码存在以下问题:
- 事件监听仅绑定了留言字段的输入事件,勾选复选框、单选框时不会触发隐藏字段的更新
- 字段选择器类名和HTML实际类名不匹配,导致单选、复选框取值失败
- 员工数量、多地点字段的取值逻辑完全缺失
- 空值未过滤,会出现多余的空占位和连续分隔符
- 多地点字段未做仅传"是"的判断
修正后完整代码
$(document).ready(function() { // 所有表单字段绑定更新事件,输入、选择操作均触发隐藏字段同步 $('input, textarea').on('keyup change', updateHiddenField); function updateHiddenField() { let fieldValues = []; // 1. 问题/留言 const comment = $('#13005').val().trim(); if (comment) fieldValues.push(comment); // 2. 感兴趣的产品,多选中的取值用逗号拼接为单个值 const products = $("p.fCustom_LR_FormServices input:checkbox:checked").map(function(){ return $(this).val(); }).get().join(','); if (products) fieldValues.push(products); // 3. 所属行业 const industry = $("p.fRAQFormIndustry input:radio:checked").val(); if (industry) fieldValues.push(industry); // 4. 员工数量 const employeeNum = $("p.fCustom_LR_FormEmployees input:radio:checked").val(); if (employeeNum) fieldValues.push(employeeNum); // 5. 多地点标识,仅选"是"时传入值 const multiLocationVal = $("p.Custom_LR_FormMulitLocation input:radio:checked").val(); if (multiLocationVal === '47787') fieldValues.push('true'); // 所有非空字段用管道符拼接赋值给隐藏字段 $('#14604').val(fieldValues.join(' || ')); } });
调整说明
- 覆盖所有表单操作场景,不会出现选择单选/复选框后隐藏字段不更新的问题
- 自动过滤无值字段,不会出现连续管道符的异常格式
- 多选的产品值内部用逗号分隔,避免和字段间的管道符混淆
- 严格遵循需求仅在多地点选"是"时传入true值
内容的提问来源于stack exchange,提问作者Katy H.
相关产品推荐
相关产品推荐

