2011-05-26 180 views
0

我有一个表格,其中有一个与字段players相关联的选择列表。默认情况下选择选择列表框中的所有选项 - javascript

要填充列表框,用户单击表单上的按钮以显示弹出框,然后从该弹出框中选择玩家的姓名,然后单击弹出框上的另一个按钮,关闭弹出框并在列表框中显示所选值。

默认情况下,我把selected="true"放在select标签中,以便当用户保存表单时,列表框中的值被保存。

<select size=5 id="sub_player_ids" name="sub[player_ids][]" multiple selected="true"> 

上面的代码选择选择框中的所有选项,并且这些选项以蓝色突出显示。

但是,用户可能会因错误而在玩家的选择框中取消选择一个选项。

我想在选择框中的所有选项默认选择 - 无论是高亮还是不

有没有一种方法默认保存表单时选择的选择框的所有选项?

非常感谢您提供的任何建议。

干杯

+0

您应该发布您的JavaScript。此外,如果您的代码正在检查select标签上的“selected”值,则应该使用另一个属性名称,因为“selected”是option标签的属性,其有效值为“selected”(所以应该选择它=“selected”) - 以非标准方式使用标准属性令人困惑。 – squidbe 2011-05-26 16:52:10

回答

1

你知道select中的值吗?您可以遍历选择并将每个选项selected设置为true。

for (var i = 0, children = select.childNodes, l = children.length; i < l; i++) { 
    if (children[i].tagName === "OPTION") children[i].selected = true; 
} 

小提琴使用的事实是Chrome/IE7 +应该定义window.select作为通过ID选择在DOM中找到的元素。如果您在Firefox中运行这个,你需要var select = document.getElementById('select');

http://jsfiddle.net/robert/VKF4E/

1

这是一个一行,如果你使用jQuery。

$("#sub_player_ids option").attr("selected", "selected"); 

说明:在jQuery选择语法使用CSS样式,以确定“选择”(列表框)使用“#ID”模式,然后用“选项”下,它选择内,在指定的所有选项元件。 “attr”函数将为每个返回的元素添加一个属性。在这种情况下,我们添加“selected”属性并将该值设置为“selected”

相关问题