我想要更改选择框的文本,而不会打扰“选项”标签值

时间:2018-05-08 07:44:02

标签: javascript html

我想在选择框中显示特定文本而不更改/删除选项标记的文本/值。例如当用户选择“+91 India”时,我只想显示“+91”

function countryChange() {
  //some code  
  document.getElementById('mySelect').value = 'some value';
}
<!DOCTYPE html>
<html>

<body>
  <select id="mySelect" onChange="countryChange()">
    <option value="+91">+91 India</option>
    <option value="+45">+45 Denmark</option>
  </select>
</body>

</html>

1 个答案:

答案 0 :(得分:1)

这是您可以执行此操作的方式

说实话,我不认为你想要做的是一个好主意。我建议创建一些div并更改其内容。

&#13;
&#13;
var select = document.getElementById('mySelect'),
  options = select.options;

select.onchange = function() {
  var option = options[select.selectedIndex];
  option.text = option.value;
  select.blur();
}

select.onfocus = function() {
  for (i = 0; i < options.length; i++) {
    options[i].text = options[i].getAttribute("data-text");
  }
}
&#13;
<!DOCTYPE html>
<html>

<body>
  <select id="mySelect">
    <option value="+91" data-text="+91 India">+91 India</option>
    <option value="+45" data-text="+45 Denmark">+45 Denmark</option>
  </select>
</body>

</html>
&#13;
&#13;
&#13;