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

使用JavaScript无法获取HTML表单select选项自定义属性modelcode的值

读取select下拉框选中项自定义属性的实现方案

你可以先定位到当前选中的<option>节点,再读取节点上的自定义属性,具体实现逻辑如下:

基础实现方案(全浏览器兼容)

// 获取select元素
const modelSelect = document.getElementById('Modeles');
// 拿到当前选中的option节点
const selectedOpt = modelSelect.options[modelSelect.selectedIndex];
// 读取modelcode自定义属性
const modelcode = selectedOpt.getAttribute('modelcode');

如果选中的是第二个值为01、展示文本为B的选项,上述代码得到的modelcode值就是B。

符合HTML标准的优化方案

建议你将自定义属性加上data-前缀,符合HTML5自定义属性规范,也可以避免和原生DOM属性冲突:
修改后的HTML代码如下:

<select class="login-input" name="Modeles" id="Modeles">
    <option value="">--- Code modele ---</option>
    <option value="00" data-modelcode="A">A</option>
    <option value="01" data-modelcode="B">B</option>
    <option value="03" data-modelcode="C">C</option>
</select>

此时可以通过dataset属性更便捷地读取属性值:

const modelSelect = document.getElementById('Modeles');
const selectedOpt = modelSelect.options[modelSelect.selectedIndex];
const modelcode = selectedOpt.dataset.modelcode;

异常处理补充

可以加判断逻辑避免未选中有效选项时返回空值影响后续逻辑:

const modelSelect = document.getElementById('Modeles');
// 第一个是占位选项的情况可以直接判断索引大于0
if (modelSelect.selectedIndex > 0) {
  const selectedOpt = modelSelect.options[modelSelect.selectedIndex];
  const modelcode = selectedOpt.getAttribute('modelcode');
  // 后续业务逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:57:01