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

输入SA身份证号时自动切换Select选项并获取性别值(JavaScript)

南非身份证号联动性别选择控件的实现方案

前提说明

南非13位身份证号的第7位数字用于标识性别:

  • 0-4 → 女性(Female)
  • 5-9 → 男性(Male)

1. 输入身份证号时自动切换性别选项

通过监听身份证输入框的input事件,实时解析身份证号并更新性别选择控件的选中状态。

HTML结构

<!-- 身份证输入框 -->
<input type="text" id="saIdInput" maxlength="13" placeholder="输入13位南非身份证号">
<!-- 性别选择控件 -->
<select id="genderSelect">
  <option value="">请选择性别</option>
  <option value="female">女性</option>
  <option value="male">男性</option>
</select>

JavaScript实现

const idInput = document.getElementById('saIdInput');
const genderSelect = document.getElementById('genderSelect');

// 监听身份证输入事件
idInput.addEventListener('input', function() {
  const idNumber = this.value.trim();
  
  // 仅当输入的是13位纯数字时处理
  if (!/^\d{13}$/.test(idNumber)) {
    // 不符合格式时清空选中状态
    genderSelect.value = '';
    return;
  }
  
  // 提取第7位数字(数组索引为6,从0开始计数)
  const genderCode = parseInt(idNumber[6], 10);
  
  // 根据规则设置性别选中值
  if (genderCode >= 0 && genderCode <=4) {
    genderSelect.value = 'female';
  } else if (genderCode >=5 && genderCode <=9) {
    genderSelect.value = 'male';
  } else {
    // 异常情况清空选中
    genderSelect.value = '';
  }
});

2. 输入身份证号时自动获取性别控件的选项值

在用户输入身份证号的过程中(或完成输入后),可以直接读取性别选择控件的当前选项值,结合自动设置逻辑使用:

修改后的JavaScript代码

const idInput = document.getElementById('saIdInput');
const genderSelect = document.getElementById('genderSelect');

idInput.addEventListener('input', function() {
  const idNumber = this.value.trim();
  
  // 先执行自动设置性别的逻辑
  if (/^\d{13}$/.test(idNumber)) {
    const genderCode = parseInt(idNumber[6], 10);
    if (genderCode >=0 && genderCode <=4) {
      genderSelect.value = 'female';
    } else if (genderCode >=5 && genderCode <=9) {
      genderSelect.value = 'male';
    } else {
      genderSelect.value = '';
    }
  } else {
    genderSelect.value = '';
  }
  
  // 获取当前性别控件的选项值和文本
  const selectedValue = genderSelect.value;
  const selectedText = genderSelect.selectedOptions[0]?.text || '';
  
  // 根据需求使用获取到的值,例如打印到控制台或赋值给其他元素
  console.log('当前性别选项值:', selectedValue);
  console.log('当前性别选项文本:', selectedText);
});

关键说明

  • 使用selectedOptions[0]?.text可以安全获取选中选项的文本内容,避免控件未选中时出现报错。
  • 如果不需要自动设置性别,仅需获取当前选中值,直接去掉自动设置的逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:23:14