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

如何使用jQuery通过name属性选取表单元素并实现双表单数据同步

实现方法说明

1. jQuery通过name属性选取元素的语法

要定位指定表单内对应name的元素,使用jQuery属性选择器即可,通用格式为:
$("表单选择器 [name='目标name属性值']")

针对你给出的代码示例,对应选取写法举例:

  • 选取f1表单内的first name输入框:$("form[name='f1'] input[name='fname2']")
  • 选取f2表单内的city只读输入框:$("form[name='f2'] input[name='city1']")

2. 功能实现代码

你可以直接把以下代码写入JS1.js文件,根据你的需求选对应场景的代码即可:

场景A:输入实时同步到f2

无需走后端请求,用户在f1输入内容时自动同步到f2:

// 页面加载完成后执行
$(document).ready(function() {
  // 给f1里除提交按钮外的所有输入框绑定输入事件
  $("form[name='f1'] input:not([type='submit'])").on('input', function() {
    // 获取当前输入框的name,替换后缀2为1得到f2对应元素的name
    const targetName = $(this).attr('name').replace('2', '1');
    // 赋值给f2对应输入框
    $("form[name='f2'] input[name='" + targetName + "']").val($(this).val());
  });
});

场景B:提交表单走AJAX后同步

需要先将数据提交到后端Servlet2,请求成功后再同步内容到f2:

// 页面加载完成后执行
$(document).ready(function() {
  // 监听f1表单提交事件
  $("form[name='f1']").submit(function(e) {
    // 阻止表单默认跳转提交
    e.preventDefault();
    // 序列化表单所有数据
    const submitData = $(this).serialize();
    // 发送AJAX请求
    $.ajax({
      url: 'Servlet2',
      type: 'post',
      data: submitData,
      success: function() {
        // 请求成功后批量同步所有输入内容到f2
        $("form[name='f1'] input:not([type='submit'])").each(function() {
          const targetName = $(this).attr('name').replace('2', '1');
          $("form[name='f2'] input[name='" + targetName + "']").val($(this).val());
        });
        alert('提交成功');
      },
      error: function() {
        alert('提交失败,请重试');
      }
    });
  });
});

3. 单个输入框点击事件监听

如果你需要判断特定输入框被点击,单独绑定点击事件即可,示例如下:

// 监听f1中出生日期输入框的点击事件
$("form[name='f1'] input[name='dob2']").click(function() {
  // 此处写对应的自定义操作逻辑
  console.log('出生日期输入框被点击');
});

内容的提问来源于stack exchange,提问作者B.R.MADHIVADHANAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:06:05