【问题标题】:Set option value with getElementsByName()使用 getElementsByName() 设置选项值
【发布时间】:2010-02-26 18:27:07
【问题描述】:

拥有这个字段集:

<fieldset>
    <legend>[*death]</legend>
    <select name=death  style="width: 120px">
        <option value=Dead>[*died]
        <option value=NotDead>[*alive]
        <option value="" selected>-
    </select>
</fieldset>

我想将[2].value 设置为"-"

我试过没有成功:

document.getElementsByName('death')[2].checked = 'true';
document.getElementsByName('death')[2].value = '-';  

相同类型的代码适用于单选框、复选框或表单中的其他输入。如何使用选项选择(不是输入)来做到这一点?

谢谢

[EDIT] 当然,适当的字段集是:

<fieldset>
  <legend>[*death]</legend>
    <select name="death"  style="width: 120px">
      <option value="Dead">[*died]</option>
      <option value="NotDead">[*alive]</option>
      <option value="" selected>-</option>
    </select>
</fieldset>

谢谢。

【问题讨论】:

  • 你的&lt;option&gt; 元素也需要结束标签:&lt;/option&gt;

标签: javascript


【解决方案1】:

有点不清楚你在问什么。您只是要求选择索引 2 处的选项吗?

document.getElementsByName('death')[0].selectedIndex = 2;

或者,您是否要求更改索引 2 处的选项值?

var d = document.getElementsByName('death')[0];
d.options[2].value = '-';

【讨论】:

  • document.getElementsByName('death')[0].selectedIndex = 2;很好。谢谢
【解决方案2】:

你需要操作你的选择对象的selected属性,试试

document.getElementsByName('death')[0].selectedIndex = 1;

在英文中,这读作“将选定的选项设置为文档中名为'death'的第一个元素中的第二个选项”。

修复 HTML 可能会使 javascript 的结果更可预测。关闭你的标签,引用你的属性值,如下:

<fieldset>
  <legend>[*death]</legend>
    <select name="death"  style="width: 120px">
      <option value="Dead">[*died]</option>
      <option value="NotDead">[*alive]</option>
      <option value="" selected>-</option>
    </select>
</fieldset>

【讨论】:

  • 感谢您的修复。你的建议也不错。
【解决方案3】:

您可以使用 jQuery 来做到这一点...很简单...

j("#death").val(2)

【讨论】:

  • 使用javascript框架肯定更好。不过,我想指出的是,他的 HTML 使用的是名称而不是 ID。
  • 如果没有 ID 怎么办(或者,我实际上可以添加一个 ID)
【解决方案4】:

document.getElementsByName('death')[2] 返回名为death 的第三个元素 - 但您只有一个具有该名称的元素。相反,您需要名为 death 的第一个元素(即索引 0 处的元素),然后您需要第三个选项:document.getElementsByName('death')[0].options[2].value = ...

【讨论】:

    【解决方案5】:

    这是一个警告示例,说明如何使用 getElementsByName

    访问您的特定选项值
    alert(document.getElementsByName('death')[0].options[0].value); // will return Dead
    alert(document.getElementsByName('death')[0].options[1].value); // will return NotDead
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 2011-06-04
      • 2013-01-29
      • 2012-06-25
      相关资源
      最近更新 更多