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

React实现:根据下拉选择自动填充禁用表单输入框

解决方案

要实现选择学生后自动填充姓名到禁用输入框的功能,只需调整select组件的onChange逻辑,同步更新姓名状态即可,具体步骤如下:

1. 修改Select组件的onChange处理函数

当用户选择选项时,除了设置userID状态,还要根据选中的userID在studentOption数组中匹配对应的学生信息,然后更新firstName和lastName状态:

<select
  className="form-select"
  aria-label="Default select example"
  onChange={(e) => {
    const selectedUserId = e.target.value;
    setUserID(selectedUserId);
    
    // 根据选中的userID查找对应的学生对象
    const selectedStudent = studentOption.find(student => student.userID === selectedUserId);
    
    if (selectedStudent) {
      setFirstName(selectedStudent.firstName);
      setLastName(selectedStudent.lastName);
    } else {
      // 选择默认提示选项时,清空姓名输入框
      setFirstName("");
      setLastName("");
    }
  }}
>
  <option value="">Select Student User Account</option>
  {studentOption.map((student) => (
    <option key={student.userID} value={student.userID}>
      {student.firstName} {student.lastName}
    </option>
  ))}
</select>

注意:给默认选项加上value="",这样选择它时能正确触发清空逻辑。

2. 优化禁用输入框的代码

因为输入框是disabled状态,onChange事件不会被触发,所以可以移除这部分冗余代码:

<div className="row">
  <div className="col-md-6">
    <input
      disabled
      type="text"
      className="form-control"
      placeholder="Student First Name"
      value={firstName}
    />
  </div>
  <div className="col-md-6">
    <input
      disabled
      type="text"
      className="form-control"
      placeholder="Student Last Name"
      value={lastName}
    />
  </div>
</div>

3. 修复API控制器的小bug

你的API控制器中存在语法错误,console.log(err).res.send会抛出错误(console.log()返回undefined,无法链式调用res.send),需修改为:

export const studentID = (req, res) => {
  db.query(
    "SELECT userID, firstName, lastName  FROM userIndex WHERE role = 'student' ORDER BY firstName ASC;",
    (err, rows) => {
      if (!err) {
        res.send(rows);
      } else {
        console.log(err);
        res.send({ alert: err });
      }
    }
  );
};

调整完成后,下拉框选择学生时,对应的firstName和lastName会自动填充到禁用输入框中,同时userID状态也会正确更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:15:36