【问题标题】:javascript set selected for select option为选择选项选择的 javascript 集
【发布时间】:2012-01-16 00:14:36
【问题描述】:

我正在动态生成下拉菜单,例如 someDropDown0、someDropDown1、someDropDown2 ...等,并将其写在 page 中的 div 中。我想知道如何将“selected”选项值设置为drop的onChange。

当我通过按钮添加新下拉菜单时,旧下拉菜单的值被重置为“选择一个”的原因。

需要一个 onChange 将选定的值设置为“选定”,以便选定的值保留在那里。

  <select id="someDropDown0" onChange=setVak(this, this.id)>
    <option value="Select One" selected>Select One</option>
    <option value="12">AB</option>
    <option value="13">CD</option>
    <option value="15">EF</option>
    <option value="20">GH </option>
    <option value="21">IJ </option>
    <option value="22">LM </option>

    </select>





function setval(optionVal, optionId)
{
        var dd = document.getElementById(optionId);
        for (var i = 0; i < dd.options.length; i++) 
        {
            if (dd.options[i].text === optionVal.text) 
            {
                dd.selectedIndex = i;
                break;
            }
        }


}

请帮忙。谢谢

【问题讨论】:

  • 我已经更新了我的代码。谢谢。请帮忙。谢谢
  • 问题仍然不完整。寻求帮助时,不仅要描述您想要/期望发生的事情,还要描述实际发生的事情,包括任何错误消息。 HTML attributes 应该被引用。如果值包含空格,这是必须的。
  • 您的代码运行良好:jsfiddle.net/CwLv8

标签: javascript drop-down-menu option


【解决方案1】:

将相应选项元素的 defaultSelected 属性设置为 true 应该可以解决问题:

       > if (dd.options[i].text === optionVal.text)
       > {

              dd.options[i].defaultSelected = true;

       >      dd.selectedIndex = i;
       >      break;
       >  } 

但请确保您只有一个选项。

还是我完全误解了这个问题?

【讨论】:

  • 这对我帮助很大!谢谢!只是好奇为什么.selected = true 不起作用
  • @SystemsRebooter——selected 属性只是将选项设置为当前选择的选项。设置 defaultSelected 属性可以有效地设置 selected 属性。
【解决方案2】:

如果我说得对,并且您正在向现有选择框添加新选项:而不是某种“onchange”行为(实际上是子树修改),您可能想要更改附加新选择选项的代码。

请参阅这些示例函数以供参考:

http://jsfiddle.net/J6bFS/

【讨论】:

  • 您好弗洛,非常感谢您的回答。我正在向页面添加新选项和 div,而不是向现有选项添加新选项。
  • 你的回答很接近,但不完全是我想要的我想在下拉菜单的更改上设置选定的选项,这样当新选项添加​​到 div 时,旧选项的值不会'不要重置为默认值。
  • 应在此处发布答案代码。
猜你喜欢
  • 1970-01-01
  • 2015-12-02
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多